博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vc++生成程序不需要.net运行环境的可以执行exe程序的方法
阅读量:4163 次
发布时间:2019-05-26

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

Q:vc++编译出来后自动产生了debug文件里面的.exe文件不能直接打开执行?
A:在新建VC++工程的时候,其中有一项是选择将MFC库作为共享的DLL还是静态的DLL。因为MFC程序在运行时需要一些DLL文件的支持,你从下编译运行时,有默认的路径来调用这些所需的DLL,因此运行不会有问题。而当你单独运行文件夹下的时,如果一开始选择的是作为共享的DLL,则就会因为的当前路径下没有所需的DLL文件而无法运行。解决方法:一种是使用打包程序,生成程序的安装包,就像一样;另一种就是采用作为静态的DLL方式,即将程序要用到的库集成到生成的exe程序中。这样程序会稍稍大一点点,相当于一个。你可以点击工程菜单下设置菜单项,常规选项卡,选择作为静态的DLL,重建工程就可以了;
 
在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://nwlxi.baihongyu.com/

你可能感兴趣的文章
merges sort use c++
查看>>
插入排序用递归实现
查看>>
工作流审批平台-审批流程-指定审批部门
查看>>
商务智能-系统概述-数据图形方式
查看>>
软件项目管理系统-项目管理-模块定义-开发内容
查看>>
工作流审批平台-审批功能
查看>>
商务智能-基本方法-特征与角度
查看>>
软件项目管理系统-项目管理-模块定义-开发笔记
查看>>
工作流审批平台-业务申请-申请书一览
查看>>
商务智能-基本方法-数据钻取
查看>>
VS2008非托管c++访问webservice服务
查看>>
C++extern用法
查看>>
vc++生成程序不需要.net运行环境的可以执行exe程序的方法
查看>>
fstream默认不支持中文路径和输出整数带逗号的解决办法
查看>>
各种程序打包软件的安装命令
查看>>
Wise Installation使用中注意的问题
查看>>
WinCE开发环境的搭建
查看>>
让fstream支持中文路径
查看>>
Wise Installation使用中注意问题 总结
查看>>
wince 禁止程序标题栏上的退出按钮X
查看>>