VC++2005如何编写脱离.Net环境的程序?

tdhao 2007-12-14 04:58:33
新建一个Win32命令行空白项目,然后自己添加一个C++文件
//代码如下:

#include <iostream>

int main()
{
for(int i=1;i<=9;i++)
{
for(int j=1;j<=i;j++)
{
printf("%d×%d=%d\t",j,i,j*i);
}
printf("\n");
}
return 0;
}

以上代码用VC++2005编译好后复制到未安装.Net Framework的电脑上运行出现
"由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题。"

新建了一个安装项目,看到安装包里面包含两个文件
policy_8_0_microsoft_vc80_debugcrt_x86.msm
Microsoft_VC80_DebugCRT_x86.msm

有什么方法可以不调用这些东东?就说简单的,我直接复制Exe文件就可以使用,不想用安装包注册DLL
因为这么简单的东西编译出来也就是48KB如果打包成安装程序就有2MB大
...全文
523 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
bgyl2002 2007-12-29
  • 打赏
  • 举报
回复
楼主,好人啊!
  • 打赏
  • 举报
回复
静态链接运行库.
「已注销」 2007-12-25
  • 打赏
  • 举报
回复
RELEAS下编译,另外拷贝几个DLL就行了,VC.NET非托管代码不需要其他.NET类库支持的
tdhao 2007-12-18
  • 打赏
  • 举报
回复
1.在VC++2005中编译了一个win32程序,未装.NET的机器上不能运行(VC++生成非托管代码)

方法一:工程属性->C/C++->代码生成: “运行时库”处选择 Multi-threaded (/MT) 或 Multi-threaded Debug (/MTd) 不要选 Multi-threaded DLL (/MD) Multi-threaded Debug DLL (/MDd)

方法二:在C:\Program Files\Microsoft Visual Studio 8\VC\redi
st\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码,就选“未设置”即可!
fire81x 2007-12-17
  • 打赏
  • 举报
回复
不错不错,又学到知识了
伊点阳光 2007-12-15
  • 打赏
  • 举报
回复
顶你一手,我是新手。
tdhao 2007-12-14
  • 打赏
  • 举报
回复
哎,看来是还是百度有用,问题解决了

只要把生成方式从Debug改成Release就可以了

这样生成出来的程序也小了很多
tdhao 2007-12-14
  • 打赏
  • 举报
回复
难道这里没人看的哦?
tdhao 2007-12-14
  • 打赏
  • 举报
回复
#include <iostream>
是否是因为使用了这个?
如果是应该使用哪个头文件?

7,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧