vs2005调试DLL时,编译没有错误
但在启动调试的时候提示:
——————————————————————————————
无法启动程序“%CSIDL_PROGRAM_FILES%/XX/XX.exe”。
发生了通常表示安装被损坏的错误(代码 0x8007007e)。
如果问题仍然存在,则通过“控制面板”中的“添加或删除程序”
修复 Visual Studio 安装。
——————————————————————————————
经过查找,发现发生这种情况的原因是:
需要调用的DLL文件不存在。
解决方法:
将需要调用的所有DLL拷贝到WinCE设备中
正在调试的EXE文件所在的目录下面
(/Program Files/exe文件的名字)。
如:/Program Files/XX
——————————————————————————————
朱铭雷
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/joyzml/archive/2010/01/11/5176018.aspx#1369151
这个万恶的问题,我遇到好郁闷.
到后来我重建动态库工程,部署的时候,有几个不是我工程生成的dll文件被拷贝进入当前目录,竟然就可以运行,甚至调试了.
我就不明白,为什么非得重建才行.而原来的工程,编译部署却不能把这些dll文件给拷到设备上.
我紧接着还做了下一下是实验,把这几个文件给拷贝到/windows目录下,而设备的工程目录下的这几个dll文件给删除了,
依然能够运行成功.
后来进行观察,能够顺利运行调试的程序的部署有以下内容:
1>------ 已启动部署: 项目: ConnMgrDll, 配置: Debug Windows Mobile 6 Professional SDK (ARMV4I) ------
1>D:/Program Files/Microsoft Visual Studio 9.0/VC/ce/dll/ARMV4I/msvcr90.dll
1>D:/Program Files/Microsoft Visual Studio 9.0/VC/ce/dll/ARMV4I/atl90.dll
1>D:/Program Files/Microsoft Visual Studio 9.0/VC/ce/dll/ARMV4I/msvcr90d.dll
1>D:/Program Files/Microsoft Visual Studio 9.0/VC/ce/dll/ARMV4I/MFC90UD.dll
1>e:/ConnMgrDll/ConnMgrDll/Windows Mobile 6 Professional SDK (ARMV4I)/Debug/ConnMgrDll.dll
========== 部署: 成功 1 个,失败 0 个,跳过 0 个 ==========
不能够顺利启动调试的,部署是以下内容:
2>------ 已启动部署: 项目: CEHttpDll, 配置: Debug Windows Mobile 6 Professional SDK (ARMV4I) ------
2>e:/ppcDll/手机协议DLL及测试/CEHttpDll/Windows Mobile 6 Professional SDK (ARMV4I)/Debug/CEHttpDll.dll
========== 生成: 成功 1 个,失败 0 个,最新 0 个,跳过 0 个 ==========
========== 部署: 成功 1 个,失败 0 个,跳过 0 个 ==========
而仔细看这几个多出的dll文件,原来他们都是vs2008所带的:
1>D:/Program Files/Microsoft Visual Studio 9.0/VC/ce/dll/ARMV4I/msvcr90.dll
1>D:/Program Files/Microsoft Visual Studio 9.0/VC/ce/dll/ARMV4I/atl90.dll
1>D:/Program Files/Microsoft Visual Studio 9.0/VC/ce/dll/ARMV4I/msvcr90d.dll
1>D:/Program Files/Microsoft Visual Studio 9.0/VC/ce/dll/ARMV4I/MFC90UD.dll