VC错误“An unsupported operation was attempted”的解决
一个MFC程序,有三个对话框,把三个对话框分别封在一个MFC规则DLL中,导出一个函数,在函数中使用 DoModal 显示对话框。
主程序和DLL都是动态链接到MFC时测试通过,但是当把主程序和DLL改为静态链接到MFC时,运行出现"An unsupported operation was attempted"的提示后,程序退出,使用DEBUG版本跟踪发现在从资源中载入BMP时出错,继续跟踪发现AfxGetResourceHandle()返回为空,改回动态链接到MFC时则又正常。
因为建项目的时候,选择的是MFC应用程序,然后在项目属性中把生成应用程序(.exe)改为生成动态库(.dll),而不是直接选择MFC DLL,怀疑是项目配置有不对的地方,一对照,发现MFC DLL项目中预定义了 _USRDLL ,把那三个DLL项目加上,编译、执行,一切正常。
错误原因可能是没有预定义 _USRDLL ,DLL没有正常初始化,所以不能载入资源。
anonymous
Recent comments