积极答复者
Failed to create empty document.

问题
-
我有一个项目是从VC6.0移植到VS2010,现在运行DEBUG时没有问题。
但在RELEASE是就会提示“Failed to create empty document.”。
我的界面是重绘的,并且单独生成资源DLL,在开始时动态加载,所以不使用MFC的资源。
现在确定问题,是动态载入资源的关系。GetPrivateProfileString("Init","Language","english",m_sLanguage.GetBuffer(50),50,INIFILE); m_sLanguage.ReleaseBuffer(); m_sLanguage.MakeLower(); if (-1 < m_sLanguage.Find("chinese")) { m_hLanguage = AfxLoadLibrary(".\\data\\chinesedll.dll"); if (m_hLanguage) { AfxSetResourceHandle(m_hLanguage); } else//DLL LOSE { AfxMessageBox("There isn't chinese!"); } } else if (-1 < m_sLanguage.Find("english")) { m_hLanguage = AfxLoadLibrary(".\\data\\englishdll.dll"); if (m_hLanguage) { AfxSetResourceHandle(m_hLanguage); } else//DLL LOSE { AfxMessageBox("There isn't english!"); } } else //默认加载为英语 { m_hLanguage = AfxLoadLibrary(".\\data\\englishdll.dll"); if (m_hLanguage) { AfxSetResourceHandle(m_hLanguage); } else//DLL LOSE { AfxMessageBox("There isn't this language!"); } }
以上是动态载入资源DLL的源代码,屏蔽就没有问题,但这是我需要的功能啊,因为要中英文双语版本。难道VS2010的载入资源和VC6.0不同吗?
谁能告诉我这是为什么,该怎么解决啊!!!!
在VS输出目录中有这样的提示:
“OpteeQ.exe”: 已加载“E:\OpteeQ\Release\data\chinesedll.dll”,未使用调试信息生成二进制文件。
“OpteeQ.exe”: 已加载“E:\OpteeQ\Release\data\ETHERNETDLL.dll”,未使用调试信息生成二进制文件。
这两个DLL就是资源的,未使用调试信息生成二进制文件??这是什么意思??
答案
-
由于你加载了这些 DLL 导致你的程序布局的改变,这种错误多半是悬空指针类似的问题引起的。
不能因为加载这些 DLL 出现问题,就认为之这里的问题。
这就好像 Debug 版本没有问题,而 Release 版本有问题的现象是一致的。
也就是,程序是有问题的,但是这些问题在不同的时候引起的现象是不一致的。
就好像,你的程序里有棵地雷,你只要不踩到就没有问题。
同样,任何程序都有 BUG,只要不踩到就没有问题。
// 我建议你看看你的整个程序,同时 简化这些 ChineseDLL 之类的DLL,看看。
我也有自己的签名档哦!- 已标记为答案 王译 2011年10月31日 7:24
全部回复
-
这两个DLL就是资源的,未使用调试信息生成二进制文件??这是什么意思??
---------------------------------------------------------------------
这个是指在模式下调试时设置断点也不管用。你的是不是Debug版本的?
Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development. -
由于你加载了这些 DLL 导致你的程序布局的改变,这种错误多半是悬空指针类似的问题引起的。
不能因为加载这些 DLL 出现问题,就认为之这里的问题。
这就好像 Debug 版本没有问题,而 Release 版本有问题的现象是一致的。
也就是,程序是有问题的,但是这些问题在不同的时候引起的现象是不一致的。
就好像,你的程序里有棵地雷,你只要不踩到就没有问题。
同样,任何程序都有 BUG,只要不踩到就没有问题。
// 我建议你看看你的整个程序,同时 简化这些 ChineseDLL 之类的DLL,看看。
我也有自己的签名档哦!- 已标记为答案 王译 2011年10月31日 7:24