我在这里使用了 msdn 文档:http: //msdn.microsoft.com/en-us/library/f0fkfy9y (v=vs.100).aspx
它在那里指定:
case dliNotePreLoadLibrary :
//If you want to return control to the helper, return 0.
//Otherwise, return your own HMODULE to be used by the
//instead of having it call LoadLibrary itself
所以我尝试了以下方法:
FARPROC WINAPI delayHook(unsigned dliNotify, PDelayLoadInfo pdli)
{
switch (dliNotify) {
case dliStartProcessing :
case dliNotePreGetProcAddress :
case dliFailLoadLib :
case dliFailGetProc :
case dliNoteEndProcessing :
return 0;
break;
case dliNotePreLoadLibrary :
{
char* dllPath = getDllPath();
HMODULE lib = LoadLibrary(dllPath);
return lib;
}
break;
default :
return NULL;
}
return NULL;
}
返回 HMODULE 时出现错误:
'return' : 无法从 'HMODULE' 转换为 'FARPROC'。
问题是什么?我在做一些破旧的事吗?他们确实说返回你自己的 HMODULE,这就是我所做的......