我用EVC作的MFC程序,为什么使用共享库在目标机上运行出错,使用静态库就可以正常运行?

didi111   2008-12-23 10:05 楼主
我用EVC作的MFC程序,为什么使用共享库在目标机上运行出错,使用静态库就可以正常运行?

回复评论 (12)

目标机上没有MFC的动态库,使用静态库是吧MFC代码打包到你的程序,不再依赖dll了
点赞  2008-12-23 10:15
引用: 引用 1 楼 navi_dx 的回复:
目标机上没有MFC的动态库,使用静态库是吧MFC代码打包到你的程序,不再依赖dll了


问题是PB里已经包含了MFC动态库
点赞  2008-12-23 10:18
表现的特征就是定制的WINCE系统未包含MFC组件,详细检查一下定制的系统工程,或者直接导出该工程的SDK,随便找个wince的机子装一下,然后看能不能跑mfc的动态链接程序。
点赞  2008-12-23 10:21
呵呵,楼上说得都对。

提供一个相关DLL下载地址:

WinCE/EVC开发网站
http://www.evccode.com

WinCE相关DLL
http://www.evccode.com/Upload/DownFiles/WinCEARMDLL.rar
点赞  2008-12-23 10:59
请确认路径和文件名正确并且所需要的库全部可用

这是在目标机上出现的提示


在PB中
Mobile Handheld[Windows CE devices]
->
Applications and Services Development
->
Microsoft Foundation Classes (MFC)


应该是安装了MFC,,我的程序完全是向导生成的没添加任何功能
我的程序使用静态MFC库就可以执行了
请教不什么方法才能看出来目标机上有没有我需要的库,MFCCE400D.DLL,CODEDLL.DLL
点赞  2008-12-23 11:03
上面没有那个MFC库的支持。这很常见。
点赞  2008-12-23 11:07
引用: 引用 6 楼 BEYONDMA 的回复:
上面没有那个MFC库的支持。这很常见。


这应该如何解决呢?
点赞  2008-12-23 11:27
重新定制系统。
点赞  2008-12-23 12:07
直接到目标机器上查看Windows目录下面有没有这些文件,要把显示所有文件的属性打开
MFC功能默认是不加的,除非后来手动添加进去
点赞  2008-12-23 13:03
静态库是把库文件都打包到EXE文件了。动态库没有。
楼主,使用静态库吧,这样比较安全。省事
点赞  2008-12-23 14:31
楼主可以检查EVC的SETTING里的LINK选项的设置对不,程序有可能没有正确的连接到库文件啊.
象你说的COREDLL.我用的时候就直接loadliabry(_T(coredll.dll))就可以用了.这样的库
应该在WINCE EVC装好后不用自己手动添加了吧
点赞  2008-12-23 15:08
非常感谢各位的帮助,我的问题搞定了

原来我生成的EXE是DEBUG模式的,包含的库是MFCCE400D.DLL,而我生成的目标机只有MFCCE400.DLL和MFCCE400I.DLL,release方式生成EXE好了,包含的是MFCCE400.DLL

再次感谢大家的帮助
点赞  2008-12-23 15:33
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复