从eVC4升级到vs2005时遇到的问题及解决方法
2007-03-03 00:18
将一个eVC4读access的例子(M哥那个)转到VS2005时遇到的问题及解决方法。
转换的时候遇到一些问题,其中有几个小问题,是“C++ does not support default-int”,解决方法是:在函数前面加上“BOOL ”就可以了,如果是没有返回值的函数则再在函数尾加一个“return TRUE;”就OK啦。
例子:
CVOString::operator = (LPCTSTR pcszValue) //
这里提示出错:C++ does not support default-int
{ m_dwLength = _tcslen(pcszValue); SetMinBufferSize(m_dwLength); _tcscpy(m_pBuffer, pcszValue); }
改为:
BOOL CVOString::operator = (LPCTSTR pcszValue)
{ m_dwLength = _tcslen(pcszValue);
SetMinBufferSize(m_dwLength);
_tcscpy(m_pBuffer, pcszValue); return TRUE; }
另外还有一些问题,按照下面所说的方法解决的。转一篇好文章:
转自:
-------------------------
以下原文-------------------------------
大家知道
MOBIL5.0
开始,
EVC4
开发的工程就无法进行
DEBUG
了,而必须使用
VS.NET2005
中的
VC++
来实现。但是以前我们费了很大心力做成的项目,也不能重新来写。
今天通过一上午的研究,将转化方法贴出来和大家共勉。
这里我们以
DIALOG BASED
工程为例。首先用
EVC4
建立一个
DIALOG BASED
的
POCKET PC 2003
工程。此工程名我们暂定为
TXDEMO
。我们也可以在对话框放置一个
BUTTON
,在单击事件里,添加
AfxMessageBox(L”Test”);
以便升级到
VS.NET 2005
后,测试资源对应情况。
此时,保存
TXDEMO
工程,并关闭掉
EVC4
开发工具。此时用
VS.NET 2005
打开
TXDEMO.VCW
工程,并接受转换请求。此时并将编译环境切换到
Windows Mobile 5.0 pocket pc sdk
。编译工程,此时会提示如下错误:
1>C:/Program Files/Microsoft Visual Studio 8/VC/ce/atlmfc/include/afxver_.h(77) : fatal error C1189: #error : Please use the /MD switch for _AFXDLL builds
这里我们通过打开
Project properties
对话框里,切换到
C/C++->Code generation
页,将
Runtime Libarary
设置成“
Multi-threaded DLL(/MD)
”
。即可解决此问题。
接着编译工程,此时会提示如下错误:
1>./TXDEMO.rc(170) : fatal error RC1015: cannot open include file 'wceres.rc'.
这里我们需要在TXDEMO.RC文件里,将#include "wceres.rc"注释掉。
//#include "wceres.rc" // WCE-specific components
接着编译工程,此时会提示如下错误:
1>corelibc.lib(wwinmain.obj) : error LNK2019: unresolved external symbol wWinMain referenced in function wWinMainCRTStartup
1>Windows Mobile 5.0 Pocket PC SDK (ARMV4I)/Debug/TXDEMO.exe : fatal error LNK1120: 1 unresolved externals
此时,我们依旧打开
project properties
对话框,切换到
Linker->Advanced
页,将
Entry Point
由
wWinMainCRTStartup
改成
WinMainCRTStartup
。
此时再次编译,系统不在提示错误,但是编译好的程序,还不能在模拟器或者
MOBILE5.0 POCKET PC
的机器上运行。
我们接着设置项目属性,在
Configuration Properties->Gengeral
页将
Use of MFC
,改成静态连接。
此时我们运行程序
,您会发现程序启动后,就立刻退去。经过我的研究,发现是加载对话框资源失败,在此我们再此打开
TXDEMO.RC
源文件,
找到
IDD_TXDEMO_DIALOG DIALOG DISCARDABLE 0, 0, 130, 90
语句,将下面的窗体属性改成如下,即可。
WS_POPUP | WS_VISIBLE | WS_CAPTION
此时,再次编译工程,你可以进行DEBUG并可以运行程序。
这是我对EVC4升级到VS.NET 2005一点总结,其中参考了MSDN中一些文档,但是MSDN说的还不够详细,通过我自己的研究,总结出一点经验,希望能给大家带来方便,谢谢。
eric.wong
msn:wbcpcpwb@hotmail.com
----------------------------
原文完------------------------------
|