版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1. EVC工程转换为VS2005(或VS2008)EVC 工程转换为 VS2005 或者 VS2008 工程后,一般要经过修改后才能编译成功,对于本光盘提供的例程,用户只需要简单的修改便可以使用。方法是使用 VS2005/VS2008 打开“xx.VCP”工作区文件,自动转换后,然后编译,修改错误,检查,修改,完成!1.1. 转换示例“TestCan”工程先准备好硬件,WinCE 设置要上电,并且与 PC 机使用 USB Device 线同步上。:选中“TestCan.vcp”,使用 VS2005(或 VS2008)打开。注意必须是 vcp 文件。点击“完成”。再点击“关闭”。上图中选择正确
2、的 SDK。然后编译。编译错误如下:3直接将“ #include wceres.rc ”注释掉。再点击下图中“绿色三角”。发现可以编译通过。WinCE 上程序跑起来了。4发现有乱码。原来“Combo Box”控件的初始数据值不正常。参考原来 EVC 编译出来的程序。把“Combo Box”控件的属性修改过来。修改后重新运行。如果编译出错,此时有可能要重新将“ #include wceres.rc ”注释掉。直到问题解决。转换完成。注意关闭工程后提示保存“x.sln”文件,请保存在工程目录即可。52. EVC工程转换为VS2005(或VS2008)常见错误与解决下面内容来源于网上,参考。资源文件
3、乱码错误:最重要的Bar 的转化。在 eVC4 里是没有 RC2 文件的,Bar 的定义是在 RC 文件中的,而在 VS2005 中把Bar 的定义放到了 RC2 文件中,如果不把这部分放到 RC2 中,VS2005 会把定义中的宏变成十六进制,让人看不懂,但是功能具备。IDR_SHBAR MOVEABLE PUREBEGINIDR_, 2,I_IMAGENONE,IDM_DONE,TBSE_ENABLED,TBSTYLE_AUTOSIZE,IDS_OK, 0,NO,I_IMAGENONE, IDM_OPTIONS, TBSE_ENABLED,TBSTYLE_DROPDOWN | TBSTYL
4、E_AUTOSIZE, IDS_HELP, 0, 1,END6如果在 VS2005 中,改变资源然后保存资源。RC 中的Bar 的定义就变成了如下的形式。IDR_RCDATABEGIN0 x0066, 0 x0002, 0 xe, 0 x800f, 0 x0004, 0 x0010, 0 x0067, 0 x0000, 0 xf,0 xe, 0 x9c43, 0 x0004, 0 x0018, 0 x0068, 0 x0000, 0 x0001END下面是实例:1. 在 eVC4 下新建一个 TestBar 的工程。2选择“A typical “o World!” application.3.
5、 “o world” 工程创建了一个工具条菜单。4然后打开VS2005, 点击,File | Open | Project/Solution5然后会显示 eVC4 到 VS2005 转化的向导。6 选择 Solution Explorer,在 Source Files 上点击右键,选择 Add | New Item.7. 在 Categories 选择 Utility,在 Templates 选择 Text File.建立 Name 为 TestBar.rc2.然后点击 Add.8. 选择 Solution Explorer,展开 Source Files,在TestBar.rc 点击View
6、 Code.9. 剪切Bar 在 rc 文件的定义。10再打开TestBar.rc2,然后粘贴代码到 TestBar.rc2 中。11选择 Resource View,展开 TestBar.rc,点击右键,选择 Resource Includes.12. 在 Compile-time directives 中添加如下代码,使 RC 和 RC2 文件关联。#if !defined(AFX_RESOURCE_DLL) | defined(AFX_TARG_CHS)7LANGUAGE 4, 2#pragma code_page(936)#include TestBar.rc2 / non-Visua
7、l C+ edited resour#endifeMbedded Visual C+ 到 Visual Studio 2005 升级向导(注意其最后一句话:默认情况下,Embedded Visual C+ 4.0 版会将 MFC Pocket PC 应用程序的框样式(Border)设置为DS_MODALFRAME。MFC 8.0 不支持此样式。 应改为 Thin,如果不改的话,窗口就无法弹出。)常见问题(针对 Debug 模式):1、StdAfx.cpp (Release 模式也需要改)编译错误:D:Program FilesVisual Studio 8VCcemfcincludeafxve
8、r_.h(77) : fatalerror C1189: #error : Please use the /MD switch for _AFXDLL builds解决方法:右击工程名,打开 Project properties框,切换到 C/C+-Code generation页,将 Runtime Libarary 设置成“Multi-threaded DLL(/MD)”,即可解决此问题。2、编译错误:error C2065: i : undeclared identifier原因:是由于存在以下的代码段:for (i = 0; i MAX_LEN; i +)/for (i = 0; i
9、MAX_NUM; i +)/8对于 evc 离开循环后,循环变量仍然有效,并且仍可以使用,但是在 VS2005 下是的,由此可见 VS2005 对变量的定义与更为严格,还有就是对数组越界问题也比 EVC来的强。解决方法:(不能完全相信编译器,也不能把所有的语法检查都丢给编译器)i = 0;for (i = 0; i MAX_LEN; i +)/for (i = 0; i = 212)#define NUM_TOOL_TIPS 8/#endif7、error C3861: ON_WM_HELPINFO: identifier not found同 48、error C2440: sic_cast
10、 : cannot convert from void ( cdecl CMyAppView:* )(void) toLRESULT ( cdecl CWnd:* )(RAM,LPARAM)None of the functions with this name inscope match thetype解决方法:afx_msg void OnHotLinkExplain(); afx_msg LRESULT OnHotLinkExplain(RAMram,LPARAM lParam);9、error C2664: CSize CDC:GetTextExtent(LPCTSTR,) const
11、 : cannot convert parameter1 from WORD * to LPCTSTRTypes poed to are unrelated; converrequires reret_cast, C-style cast orfunction-style cast 需要强制转换pDC-GetTextExtent(&i, 1).cx);pDC-GetTextExtent(LPCTSTR)&i, 1).cx;10、error C2039: OnHelpInfo : is not a member of CViewerror C2039: OnHelpInfo : is not a
12、 member of CFrameWnderror C2039: OnHelpInfo : is not a member of CDialog解决方法:用 TRUE 替换相应的类成员函数 OnHelpInfo10return CView:OnHelpInfo(pHelpInfo); return TRUE;11、error C2039: m_bShowSharedNewButton : is not a member of CdBarD:Program FilesVisual Studio 8VCcemfcincludeafxext.h(557) : see declarationof Cd
13、Bar解决方法:mandBar.m_bShowSharedNewButton = FALSE;直接注释掉12、.MyApp.rc(380) : fatal error RC1015: cannot open include file wceres.rc.解决方法:直接注释掉:#include wceres.rc/ Wpecific components但是,这个错误很讨厌,每次你修改资源文件后,都得修改该语句,不知道为什么。13、Resease 模式下也要修改error LNK2019: unresolved external symbol SHInitExtraControls refere
14、nced in functionprotected: cdecl CMyAppView:CMyAppView(void) (0CMyAppViewIAAXZ)问题:程序中调用了 SHInitExtraControls();error LNK2019: unresolved external symbol SHSipPreference referenced in functionprotected:void cdeclCMyAppView:OnKillfocusWord(void)( OnKillfocusWordCMyAppViewIAAXXZ)问题:程序中调用了 SHSipPreferen
15、ce以上两个函数都在:Library: aygs.lib 里解决方法:工程-属性-Linker -input - Additional Denpendencies :aygs.lib14、Resease 模式下也要修改orelibc.lib(wwain.obj) : error LNK2019: unresolved external symbol wWain11referenced in function wWainCRTStartup属性LinkerAnvancedEntryPo将 wWainCRTStartup 更改为 WainCRTStartupEntry Po是 WainCRTSta
16、rtup(ANSI)或 wWainCRTStartup(UINCODE),即: .WainCRTStartup 或 wWainCRTStartup 会调用 Wain 或 wWain。15、 error C3861: LoadStdProfileSettings: identifier not found注释掉函数 LoadStdProfileSettings;该函数的具体功能,看 MSDN。BTW:编译的时候,有可能会出现一些由以上错误产生的连锁错误,俗称“蝴蝶效应”,如 error C2143: syntax error : missing ; before error C2143: syntax error : missing ; before ,error C2143: syntax error : missing ; before 少了了、;等等,把以上的错误主要解决了,这些错误错误也就迎刃而解了。何况,这个工程是以前在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论