[在审查一个名为“ DLLMAIN区域内的调用函数”的问题时,我的问题是沿着这些思路的。在如下所示的DLLMAIN代码中,我需要调用一些函数来设置工作环境。我什至没有在代码中设置断点来中断执行,因此我可以开始调试我的代码,但还是没有运气。有人知道我在做什么错吗,有什么好主意可以帮助我修复有问题吗?如果无法执行此代码,则我的应用程序沉没了。随便,谢谢。我的DLL文件是用“ C”编写的,未处理。
switch (fdwAction) { /// (1) was dw_reason
switch (fdwAction) { ///(2)
case DLL_PROCESS_ATTACH: ///1st/ The Initial user logs in.
case DLL_THREAD_ATTACH: //2nd+/ Another user logs on.
hInstance = hinstDLL; ///Preserve handle this instance, for another function.
GetModuleFileNameA(hInstance, dllFilePath, dllFilePathlength);
MessageBoxA(NULL, dllFilePath, "Entered DLLMain Area. ", MB_OK);
switch (fdwAction) { ///(3)
case DLL_PROCESS_ATTACH: //1st/ The Initial user logs in.
iretval = 1;
break;
case DLL_THREAD_ATTACH: //2nd+/ Another user logs on.
iretval = 2;
break;
} ///(3)
}
retnum = 0;
retint = MM_INITIALIZATIONSandSETUPs(iretval);
break;
case DLL_PROCESS_DETACH:
case DLL_THREAD_DETACH: /// A process is detaching from the DLL.
switch (fdwAction) { ///(5)
case DLL_PROCESS_DETACH: //1st/ The Initial user logs out.
break;
case DLL_THREAD_DETACH: //2nd+/ Another user logs out.
break;
} ///(2)
break;
} ///(1) end of initial switch statement.
return TRUE;
} ///(0)
well-documented严格限制DllMain
功能的可操作范围。列出的其中一项内容是you should never do is: