VC++中运行C语言一个工程总可以运行多个代码吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VC++中运行C语言一个工程总可以运行多个代码吗?相关的知识,希望对你有一定的参考价值。

我在VC++6.0中运行C语言程序,第一个成功运行了,又新建了一个C++SOURCE FILE的文件,并输入程序,虽然程序编译没有错误,但是不能运行,或者运行的都是第一个程序的结果,这是什么原因呢?需要怎么做才行?难道还要新建一个工程才能运行另一个程序吗?
不是说一个工程里面可以有多个源代码么?
我写了一个程序,运行玩了,要再写一个程序需要再重新建一个工程吗?

不需要新建一个工程。你应该把第一个c语言程序从工程中删除掉。选中第一个c程序,del键,这只是从让你的工程不包含此文件而已,不是从磁盘中删除文件。然后你编译加入的第二个c语言程序,就可以了。
之所以不能运行,或者运行的都是第一个程序的结果是因为一个工程中只能有一个还有main函数的程序,你两个c语言程序都包含main程序,当然不能运行了。把第一个程序从工程中移除,让该工程只有一个可执行的程序就可以了。这样,你一个工程的文件夹可以加入很多文件,但编译运行时只能由一个有main函数的程序和提供给main函数调用的其他c程序文件。
参考技术A 你一个工程里可以有多个cpp,但是多个cpp不能有两个main,要不单个文件编译可以通过,但是链接就不能通过了,所以不能运行,运行时仔细看看提示内容,大体意思是说没法链接通过,问是否运行上次生成的程序,你点是当然是第一次的结果了。
同一个工程里不要有重复的公用符号。

需要新建一个工程,一个工程就是单独的一个项目,两个cpp文件功能不通,放两个工程也合理啊,再说了,两个程序是独立运行的,必须要分开。本回答被提问者采纳
参考技术B 一个工程只能有一个main函数,要运行第二个程序,你把第一个main函数注释了就可以了
/*int main()
.........
....
*/ -----------------------补充:
你在原来的文件里把原来的代码全部注释掉,在下面写你新的程序
#include<iostream>
using namespace std;
/*
..........
*/
这里开始写你新的程序
参考技术C 每个进程只有一个主线程就是你的MAIN...不同的工程是不能同时运行的,也就是你的应用程序只能依次运行;可以选择激活当前对象,完成工程间切换 参考技术D 右键该项目 选择set as active project

需要重新建工程

VS为VC++添加UAC控制(VC程序默认管理员运行)

1.VS编译链接VC++工程生成文件默认是没有管理员权限的 生成的程序图标是没有盾牌的如图:

如果程序需要在C盘做些写入操作 就必须具有管理员权限 所以需要在工程中进行设置。

注:自己项目的安装程序安装在Win7系统C:\\Program Files (x86)下,程序可以正常运行,但在Win10系统下,安装到C:\\Program Files (x86)目录下,程序就无法正常运行。猜测win10对安装程序的权限要求更高,所以需要对程序权限进行设置。

 

工程右键属性 具体如图:

 

确定后编译链接 生成的程序就有了一个盾牌图标了如图:  

运行程序也会弹出管理员权限提示,这样管理员UAC就算设置好了。

 

注:

我们知道, win7及以上的系统权限控制的非常严格,普通用户在系统目录下没有写的权限,软件经常要写一些配置文件之类的功能就无法操作,

其实特定目录没有写的权限,但软件会运行的好好的,表面没有任何问题,它会自己重定向到C:\\Users\\当前登录用户名\\AppData\\Local\\VirtualStore\\类似这样的文件夹下

而且也能顺利的读取写进去的数据,win7及以上的系统有这样的重定向机制,包括注册表。

其实对我们软件来说,这绝对是个隐形的bug,有时会出现莫名其妙的bug正是由这个引起,所以我们不能任由它这么任性的重定向,有种简单的办法就是鼠标右击后“以管理员身份运行”即可解决该问题,但关键是我们不可能让我们的客户每次都这样右击管理员身份运行吧,所以我们采用这种方法。

 

转载:http://blog.csdn.net/whatday/article/details/39403199

以上是关于VC++中运行C语言一个工程总可以运行多个代码吗?的主要内容,如果未能解决你的问题,请参考以下文章

VC++怎么用

如何在vc++中判断计算机是不是安装c运行时库

VC上写好的C文件,拿到UBUNTU下需要改啥才能运行

如何用VC编写一个程序,运行打开指定网页

vc++6.0怎么编译多个C文件

vc6如何设置当前工程的编译方式,是win32 Debug还是win32 Release方式?