【发布时间】:2017-02-06 19:54:44
【问题描述】:
我有一些问题。这是我的代码:
typedef BOOL (WINAPI *pPrintUIEntry)(HWND, HMODULE, wchar_t *, DWORD);
printuiDll = LoadLibrary("printui.dll");
if (printuiDll == NULL)
{
printf("Error LoadLibrary %d.\n", GetLastError());
return -1;
}
PrintUIEntry = (pPrintUIEntry) GetProcAddress(printuiDll, "PrintUIEntryW");
if (PrintUIEntry == NULL)
{
printf("Error GetProcAddress %d.\n", GetLastError());
return -1;
}
//cmd is /ia /m "Printer" /f "C:\Program Files x86)\\drivers\Printer\Printer.inf
if (PrintUIEntry(GetDesktopWindow(), printuiDll, cmd, SW_SHOW))
{
printf("Error PrintUIEntry %d.\n", GetLastError());
return -1;
}
抱歉,我无法复制我在大学工作的代码。我遇到的问题是PrintUIEntry 返回 0,它给了我错误代码2。我试着用谷歌搜索一下这个功能,但我能找到很多。希望你能帮忙。谢谢。
我已经检查并且文件存在。
【问题讨论】:
-
从命令提示符输入
rundll32.exe printui.dll PrintUIEntry,然后查看它所期望的附加信息。是什么给您的印象,您可以直接调用它而无需这些细节?您在哪里可以找到传递给它的参数的文档?为什么你会期望它寻找已经从其中加载的 DLL 的 HMODULE 作为这些参数之一? -
您希望我们告诉您什么?错误是找不到文件。但后来你知道了,因为你查了一下。这有关系吗?可能是。 cmd的价值是什么?只有你知道。
-
进程远程启动,无法查看cmd的值,抱歉,我会补充更多细节
-
所以换句话说,你不知道你的代码做了什么,你希望有人解释它的行为。
-
不,我想知道为什么我得到错误代码
2