我确实了解APC是什么,它如何工作,在exe中工作正常。尽管一旦我将整个代码复制到dll中,它就无法在dll中工作。这是下面的代码片段。
...
typedef struct
{
LPCSTR lpCmdLine;
UINT uCmdShow;
}test;
typedef UINT(WINAPI *WINEXEC)(LPCSTR, UINT);
HMODULE hModule = GetModuleHandleA("kernel32.dll");
LPVOID pFunc1 = GetProcAddress(hModule, "WinExec");
((WINEXEC)pFunc1)("notepad.exe", SW_SHOW);
test a = { "notepad.exe", SW_SHOW };
...
hThread = OpenThread(THREAD_ALL_ACCESS, FALSE, TID);
QueueUserAPC((PAPCFUNC)pFunc1, hThread , (ULONG_PTR)&a);
..
请帮助我解决此问题。希望很快能收到您的回音。
玫瑰目前看来APC很明显,让我晚上下班回来检查一下。您是否曾经检查过用于dll vs exe导入的功能的地址?最好的问候。