普通dll(不是com)中的输出函数(该函数中调用了win32 api)怎么声明? 我的总出错.如:
BOOL __declspec(dllexport)__stdcall installhook()
{
hHook=SetWindowsHookEx(WH_GETMESSAGE,
(HOOKPROC)MessageHookProc,
hins, 0);
return TRUE;
}该函数调用了win32 api 中的SetWindowsHookEx(), 请问声明为__stdcall可以吗?我调用时这样:
typedef BOOL (__stdcall Tinstallhook)();
Tinstallhook * g_pFunc_installhook = NULL;g_hMessageHookDLL = LoadLibrary("MessageHook.DLL");
if (g_hMessageHookDLL != NULL)
{
g_pFunc_installhook = (Tinstallhook *)GetProcAddress(g_hMessageHookDLL,"installhook");
}结果loadLibrary()成功, 而GetProAddress()的返回值为空. why?
我必须用LoadLibrary的方式.
BOOL __declspec(dllexport)__stdcall installhook()
{
hHook=SetWindowsHookEx(WH_GETMESSAGE,
(HOOKPROC)MessageHookProc,
hins, 0);
return TRUE;
}该函数调用了win32 api 中的SetWindowsHookEx(), 请问声明为__stdcall可以吗?我调用时这样:
typedef BOOL (__stdcall Tinstallhook)();
Tinstallhook * g_pFunc_installhook = NULL;g_hMessageHookDLL = LoadLibrary("MessageHook.DLL");
if (g_hMessageHookDLL != NULL)
{
g_pFunc_installhook = (Tinstallhook *)GetProcAddress(g_hMessageHookDLL,"installhook");
}结果loadLibrary()成功, 而GetProAddress()的返回值为空. why?
我必须用LoadLibrary的方式.
extern "C" __declspec(dllexport) BOOL StartHook(HWND hWnd)
{
....
}这里是你调用DLL时的声明
typedef BOOL (STARTHOOK) (HWND);
STARTHOOK *pStartHook = NULL;这样就完成了你的调用
pStartHook(pEdit->GetSafeHwnd());试试兄弟,祝你好运~