博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vs2005 vc++ 生成非托管的 不需要.net运行环境的exe程序方法
阅读量:7281 次
发布时间:2019-06-30

本文共 934 字,大约阅读时间需要 3 分钟。

在VS2005里开发的VC++程序在编译的时候,微软默认会加入自己的 .Net Framework (方便推广自家产品),让你的VC++程序依赖它,这就导致程序编译后,无法跟往常一样直接打包,在别的机器就能正常运行。如果加入了.Net Framework ,安装包就会非常大。以下方法很好的解决了这个问题,通过以下两种方法可以用VS2005将VC++程序编译为不需要依赖.Net Framework就可以直接运行的程序了。

方法一:

1、右键项目-属性

2、配置属性-C/C++-代码生成

3、运行时库-选择/mt或者/mtd

 即 Multi-threaded (/MT)  或 Multi-threaded Debug (/MTd)  

   不要选 Multi-threaded DLL (/MD)  Multi-threaded Debug DLL (/MDd)

4、配置属性-C/C++-常规

5、选择在静态库中使用MFC

6、编译运行即可

    方法二:在你的VS安装目录里如下路径
    /Microsoft Visual Studio 8/VC/redist/Debug_NonRedist/x86/Microsoft.VC80.DebugCRT
    下找到下列文件: 
    msVCm80d.dll
    msVCp80d.dll
    msVCr80d.dll
    Microsoft.VC80.DebugCRT.manifest
   把这几个文件拷贝到目标机器上,与你编译后的可执行程序放置在同一文件夹,或者放到system32下,就可以让目标机器运行该程序了。
    2.VC++带模板函数时能编译不能连接,显示连接错误“error LNK2019: 无法解析的外部符号”
    解决方法:用模板的时候,把声明和实现放在一个文件里。因为模板的机制决定了不可能把模板的CPP象其它方式(不用模板)一样编译成一个obj,数据类型都是程序中用到时才会知道的,这时连接的函数名也会因类型不同而不同,所以多数编译器都要求写在一个文件中。
    3.如果在VC++2005的程序中使用UNICODE字符集的API等函数,可以在项目属性->配置属性->字符集处选“使用UNICODE字符集”,如果只用ASCII码,就选“未设置”即可!

转载地址:http://bckjm.baihongyu.com/

你可能感兴趣的文章
Linux VFS 虚拟文件系统数据结构
查看>>
Laravel5.5 配置多模块
查看>>
讲下clone克隆的理解
查看>>
我讨厌注解式的Spring IOC
查看>>
大龄程序媛之歌
查看>>
php 去除数组某一个元素
查看>>
Ehcache(08)可阻塞的Cache-BlockingCache
查看>>
Spring-Boot(六) Spring Session 分布式会话管理
查看>>
iptables进行端口转发
查看>>
基于Hadoop的云盘系统客户端技术选型说明
查看>>
linux下C语言多线程编程实例--修改后
查看>>
我的友情链接
查看>>
更新脚本
查看>>
用Android-X86和VMware打造高性能Android开发环境
查看>>
我的友情链接
查看>>
学习Hadoop找到的一些资源
查看>>
经纬度精度差别
查看>>
【08】分析类
查看>>
垃圾收集的种类
查看>>
HRegionServer启动后自动关闭的问题
查看>>