DLL中的函数调用无法按预期方式运行(QueueUserAPC)

问题描述 投票:0回答:1

我确实了解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);

..

请帮助我解决此问题。希望很快能收到您的回音。

dll queue c++14 apc
1个回答
0
投票

玫瑰目前看来APC很明显,让我晚上下班回来检查一下。您是否曾经检查过用于dll vs exe导入的功能的地址?最好的问候。

© www.soinside.com 2019 - 2024. All rights reserved.