9374|11

62

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

EVC编写的程序WiNCE6.0上不能运行问题请教? [复制链接]

最近将wince5.0升级到wince6.0,发现以前在EVC下编写的mfc应用程序在wince6.0上不能运行,
尝试将Program Files\Microsoft Visual Studio 8\VC\ce\Dll\armv4I目录下几个跟MFC相关的DLL导入到系统windows目录(网上看帖子说是PB6.0对MFC不支持),重新运行mfc程序依然打不开。
请问各位仁兄如果想在wince6.0上运行的话,是不是以前EVC下开发的mfc程序得重新在VS2005下开发?
还有一个问题:
我以前在EVC下通过WCE ATL COM AppWizard工程编写的com组件在WINCE6.0下也无法注册成功,用regsvrce注册会弹出Loadlibray("XX.dll") failed GetLastError returns 7e 的错误提示(我检查了文件路径都没错)。
然后我打算在VS2005下重新开发这个COM 组件,于是我新建了一个ATL 智能设备项目的工程,然后添加一个ATL Simple Object和方法,可编译后出现如下错误:
C2039: 'UpdateRegistry': is not a member of 'CCERemoteMonitor'
错误指向的是OBJECT_ENTRY_AUTO(__uuidof(CERemoteMonitor), CCERemoteMonitor)这句.
这是什么原因呢?请问我该如何解决?谢谢大家!


最新回复

CCERemoteMonitor是我添加的一个COM对象,是通过ATL向导添加的,代码是自动生成的.现在还没为改对象添加方法,一编译就出现上述问题。错误指向的是错误指向的是OBJECT_ENTRY_AUTO(__uuidof(CERemoteMonitor), CCERemoteMonitor)这句.  详情 回复 发表于 2010-5-17 09:22
点赞 关注

回复
举报

71

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
EVC开发的应用,是可以在CE6.0下运行的.不能运行,说明少了组件.
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
应该是少了MFC的动态库, 以下是VS2008的示例.如果是VS2005,将相应的9换成8即可.
20>D:\Program Files\Microsoft Visual Studio 9.0\VC\ce\dll\ARMV4I\msvcr90.dll
20>D:\Program Files\Microsoft Visual Studio 9.0\VC\ce\dll\ARMV4I\atl90.dll
20>D:\Program Files\Microsoft Visual Studio 9.0\VC\ce\dll\ARMV4I\msvcr90d.dll
20>D:\Program Files\Microsoft Visual Studio 9.0\VC\ce\dll\ARMV4I\MFC90UD.dll
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

4
 
设置成静态链接库,再试一试看。如果仅仅考过去一个debug版本的话,会提示缺少组件的
 
 
 

回复

87

帖子

0

TA的资源

一粒金砂(初级)

5
 
帮你顶
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

6
 
首先谢谢大家的回复!
引用 2 楼 91program 的回复:
应该是少了MFC的动态库, 以下是VS2008的示例.如果是VS2005,将相应的9换成8即可.
20>D:\Program Files\Microsoft Visual Studio 9.0\VC\ce\dll\ARMV4I\msvcr90.dll
20>D:\Program Files\Microsoft Visual Studio 9.0\VC\ce\dll\ARMV4I\atl90.d……

我把\Program Files\Microsoft Visual Studio 8.0\VC\ce\dll\ARMV4I目录下所有的dll都拷入到WINCE6.0系统windows目录下,运行mfc程序还是打不开。是不是我定制内核的时候少添加了什么组件呢?
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

7
 
CE5与CE6是有些不同的,CE6支持的组件比CE5少,可能是你的程序中恰好包括了一些CE6不支持的组件,建议楼主将EVC的工程移植到VS2005上面试。以前我也出现过这种问题,试了很多方法都不能解决,最后移到vs05上面就解决了,否则修改起来的话会非常麻烦,祝楼主好运
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

8
 
在WINCE5.0操作系统上,DLL可以动态链接,但是在WINCE6.0上面,DLL必须静态链接,并且要把相应的DLL拷贝进去,否则会出错
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

9
 
引用 6 楼 rattlerattle 的回复:
CE5与CE6是有些不同的,CE6支持的组件比CE5少,可能是你的程序中恰好包括了一些CE6不支持的组件,建议楼主将EVC的工程移植到VS2005上面试。以前我也出现过这种问题,试了很多方法都不能解决,最后移到vs05上面就解决了,否则修改起来的话会非常麻烦,祝楼主好运

谢谢你的建议,我也打算直接将EVC的工程移植到VS2005上。
但第二个问题我将EVC下的WCE ATL COM AppWizard工程移植到VS2005下,
创建了一个ATL 智能设备项目,编译后会有C2039: 'UpdateRegistry': is not a member of 'CCERemoteMonitor'的错误,请问改如何解决呢?
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(中级)

10
 
“CCERemoteMonitor”我在MSDN上面没找到这个项,是自己写的吗?
看上面的错误提示是UpdateRegistry不是CCERemoteMonitor的成员,楼主检查一个CCERemoteMonitor的定义申明,找找是否有UpdateRegistry这个成员
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

11
 
引用 7 楼 domworldjohn 的回复:
在WINCE5.0操作系统上,DLL可以动态链接,但是在WINCE6.0上面,DLL必须静态链接,并且要把相应的DLL拷贝进去,否则会出错


这样就不对了!

谁说CE6.0上的DLL必须静态链接???
 
 
 

回复

89

帖子

0

TA的资源

一粒金砂(初级)

12
 
引用 9 楼 rattlerattle 的回复:
“CCERemoteMonitor”我在MSDN上面没找到这个项,是自己写的吗?
看上面的错误提示是UpdateRegistry不是CCERemoteMonitor的成员,楼主检查一个CCERemoteMonitor的定义申明,找找是否有UpdateRegistry这个成员

CCERemoteMonitor是我添加的一个COM对象,是通过ATL向导添加的,代码是自动生成的.现在还没为改对象添加方法,一编译就出现上述问题。错误指向的是错误指向的是OBJECT_ENTRY_AUTO(__uuidof(CERemoteMonitor), CCERemoteMonitor)这句.
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表