Вызов функции в DLL не работает должным образом (QueueUserAP C) - PullRequest
0 голосов
/ 28 апреля 2020

Я понимаю, что такое AP C, как оно работает, отлично работает в 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);

..

, пожалуйста, помогите мне решить эту проблему. С нетерпением жду ответа от вас в ближайшее время.

1 Ответ

0 голосов
/ 29 апреля 2020

Rose Кажется, что AP C довольно очевиден в данный момент, позвольте мне проверить вечером, когда я вернусь с работы. Вы когда-нибудь проверяли адрес функций, которые вы использовали для импорта в dll vs exe? С наилучшими пожеланиями.

...