美文网首页
C++ DLL调用DIAGLOG显示异常处理

C++ DLL调用DIAGLOG显示异常处理

作者: 梵蒂冈教主 | 来源:发表于2020-06-22 09:55 被阅读0次

    DLL被其它程序调用时,无法获取自身正确的Handle导致


    1、重写调用方法

    模态框重写virtual INT_PTR DoModal();

    非模态框重写virtual BOOL Create(UINT nIDTemplate);

    根据实际调用情况,重写方法

    2、重写方法主代码

    HINSTANCE hInstOld = AfxGetResourceHandle();

    AfxSetResourceHandle(GetSelfModuleHandle());

    //方法内代码,一般此处为调用父方法代码

    AfxSetResourceHandle(hInstOld);// 重新设置回instance

    return XXX;

    3、GetSelfModuleHandle方法实现

    HMODULE GetSelfModuleHandle(){

    MEMORY_BASIC_INFORMATION mbi;

    return ((::VirtualQuery(GetSelfModuleHandle, &mbi, sizeof(mbi)) != 0)

          ? (HMODULE) mbi.AllocationBase : NULL);

    }

    相关文章

      网友评论

          本文标题:C++ DLL调用DIAGLOG显示异常处理

          本文链接:https://www.haomeiwen.com/subject/yfztfktx.html