从DLL dllmain-setup区域内调用函数

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

[在审查一个名为“ 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)


c winapi dll
1个回答
0
投票

well-documented严格限制DllMain功能的可操作范围。列出的其中一项内容是you should never do is

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