小弟不才,使用MFC扩展DLL编写了一个带对话框资源的程序,然后把这个DLL,加到我的主程序中,不想竟有资源上的冲突,我点击DLL中的菜单,弹出的竟是主程序中我设计的一个对话框,小弟出来乍到,好容易做了一个DLL,调试通过了,那想会出来这种问题,请高手指点。

解决方案 »

  1.   

    楼上的,说清楚一点,我看了一下MSDN中这个函数的说明,
    其中的意思是说,这个函数是用来设置“决定要载入程序的默认资源”句柄。
    我是菜鸟,请详细的告诉我好吗?,1)这个函数在什么地方用,2)其中参数HINSTANCE hInstResource 在哪里能得到,多谢。
      

  2.   

    HINSTANCE save_hInstance = AfxGetResourceHandle();       AfxSetResourceHandle(theApp.m_hInstance); 在调用对话框成功之后,也就是dlg.DoModal();之后,添加: AfxSetResourceHandle(save_hInstance);
      

  3.   

    谢谢,rivershan(笨猫)(深入浅出DLL与Hook) 
    我的理解是在主程序的任何地方都可以放置这两条语句
    HINSTANCE save_hInstance = AfxGetResourceHandle();       AfxSetResourceHandle(theApp.m_hInstance);然后在dlg.DoModal();之后,添加:
     AfxSetResourceHandle(save_hInstance);
    你看对吗?
      

  4.   

    检查DLL工程和测试程序的resource.h文件。如果ID相同的把定义的值也该为相同。
    如果ID不同,后面的定义值也一定不要跟其它的ID值相同。
      

  5.   

    http://www.csdn.net/Develop/read_article.asp?id=25358