我用EVC作的MFC程序,为什么使用共享库在目标机上运行出错,使用静态库就可以正常运行?
目标机上没有MFC的动态库,使用静态库是吧MFC代码打包到你的程序,不再依赖dll了
表现的特征就是定制的WINCE系统未包含MFC组件,详细检查一下定制的系统工程,或者直接导出该工程的SDK,随便找个wince的机子装一下,然后看能不能跑mfc的动态链接程序。
呵呵,楼上说得都对。
提供一个相关DLL下载地址:
WinCE/EVC开发网站
http://www.evccode.com
WinCE相关DLL
http://www.evccode.com/Upload/DownFiles/WinCEARMDLL.rar
请确认路径和文件名正确并且所需要的库全部可用
这是在目标机上出现的提示
在PB中
Mobile Handheld[Windows CE devices]
->
Applications and Services Development
->
Microsoft Foundation Classes (MFC)
应该是安装了MFC,,我的程序完全是向导生成的没添加任何功能
我的程序使用静态MFC库就可以执行了
请教不什么方法才能看出来目标机上有没有我需要的库,MFCCE400D.DLL,CODEDLL.DLL
直接到目标机器上查看Windows目录下面有没有这些文件,要把显示所有文件的属性打开
MFC功能默认是不加的,除非后来手动添加进去
静态库是把库文件都打包到EXE文件了。动态库没有。
楼主,使用静态库吧,这样比较安全。省事
楼主可以检查EVC的SETTING里的LINK选项的设置对不,程序有可能没有正确的连接到库文件啊.
象你说的COREDLL.我用的时候就直接loadliabry(_T(coredll.dll))就可以用了.这样的库
应该在WINCE EVC装好后不用自己手动添加了吧
非常感谢各位的帮助,我的问题搞定了
原来我生成的EXE是DEBUG模式的,包含的库是MFCCE400D.DLL,而我生成的目标机只有MFCCE400.DLL和MFCCE400I.DLL,release方式生成EXE好了,包含的是MFCCE400.DLL
再次感谢大家的帮助