VS2005 发布
来源:互联网 发布:高中做题软件 编辑:程序博客网 时间:2024/05/16 23:39
VC2005编译出来的程序文件,采用了manifest方式来指定dll文件。对于win98、win2000系统,把exe文件和VC的 dll连接库放到一起就成了。对于winxp、win2003系统就要麻烦的多了,VC的连接库默认是被放到了winsxs目录下,结果造成在这些系统上,直接拷贝exe文件,往往是不能运行(找不到msvcr80.dll、mfc80.dll文件等),或者在事件日志中报错。
解决方式:
方式一、在目标系统上安装2005版vcredist_x86.exe。
方式二、直接拷贝VS8目录下的VC / redist / x86 / 目录下的 Microsoft.VC80.MFC、Microsoft.VC80.CRT、Microsoft.VC80.MFCLOC几个文件夹,到exe所在的目录下,目录结构如下:
./myapp.exe
./myapp.dll
./Microsoft.VC80.CRT./Microsoft.VC80.MFC./Microsoft.VC80.MFC/Microsoft.VC80.MFCLOC然后修改Microsoft.VC80.MFCLOC目录下的Microsoft.VC80.MFCLOC.manifest文件,将其中的version="8.0.50727.42",修改为version="8.0.50608.0"。
方式二的目录结构,在xp和2003下是没有问题的,但是在win98/win2000中,因为exe和dll不在同一目录下,就会出现找不到dll的问题。
有什么更好的解决呢?呵呵,国外的一个大牛(http://blog.kalmbachnet.de)找到一绝招:
方式三、
1、首先编译myapp.exe的时候,在配置中,选择生成单独的manifest文件,如:myapp.exe.manifest。
2、将myapp.exe、myapp.exe.manifest拷贝到一个目录下
3、将Microsoft.VC80.MFC、Microsoft.VC80.CRT、Microsoft.VC80.MFCLOC几个目录下的文件,都拷贝到myapp.exe所在的目录下。
4、将Microsoft.VC80.MFCLOC.manifest文件中的version="8.0.50727.42",修改为version="8.0.50608.0"。
5、编辑myapp.exe目录下的所有 .manifest文件,将文件中的publicKey键值删除,一般是publicKeyToken="1fc8b3b9a1e18e3b"
6、然后运行myapp.exe看看,嗯。
- VS2005 发布
- VS2005 Beta发布
- 发布ActiveX(VS2005)
- vs2005 程序发布问题
- VS2005程序发布注意事项.
- vs2005 vc++ 程序发布
- VS2005程序发布
- VS2005程序发布
- vs2005 网站发布不成功
- vs2005 发布程序
- VS2005 SP1终于发布了
- VS2005发布网站邪门问题解答
- vs2005 发布项目发生错误
- VS2005自定义ActiveX控件发布
- VS2005/VS2008应用程序打包发布
- VS2005 MFC程序打包发布
- 巧用VS2005解决VS2005网站发布不便问题
- 巧用VS2005解决VS2005网站发布不便问题
- linux socket通信之SIGPIPE信号
- 5.23-5.27规划
- SQLite 日期类型(转)
- java操作excel
- Dialog---Button处理
- VS2005 发布
- 关于DOM事件的Bubbling和Capturing
- o>oia>oe1>oe2
- Visual Studio 2008 每日小窍门 【持续发布ing~】 Tips:013
- 时间的函数,sleep,clock,gettickcount,QueryPerformanceCounter
- 结束指定进程
- F7 ,F8
- 从ArrayList中删除对象报java.util.ConcurrentModificationException异常解决
- CreateDIBSection的使用