C++程序在VS2010中可以运行 但是debug里面的可执行文件不能单独运行 而DEVC++则均可以 啥情况 求解答。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++程序在VS2010中可以运行 但是debug里面的可执行文件不能单独运行 而DEVC++则均可以 啥情况 求解答。相关的知识,希望对你有一定的参考价值。

#include<iostream>
#include<stdlib.h>
#include<fstream>
#include<cstring>
#include<string>
using namespace std;
int main()

ifstream input;
char c;
string ip;
char pingip[35];
string time="";
bool STATE=false;
cout<<"Please input the host you want to ping:"<<endl;
cin>>ip;
ip="ping -n 1 "+ip+" > tmp.txt";
//cout<<ip;
strcpy( pingip, ip.c_str() );
system(pingip);
input.open("tmp.txt",ios::in);
int num=0;
while(input>>c&&c!=EOF)
//num++;
if(c=='='||c=='<')

num++;
input>>c;

if(num==2)

if(c=='T')

break;

time+=c;


if(time.at(0)<49||time.at(0)>58)

time="Request timed out";

cout<<time<<endl;
system("pause");
return 0;

执行目录问题。VS默认的程序执行目录很恶心,不是在exe目录,而是工程的目录,所以如果你能在VS里执行,并且你没有修改默认的执行目录,那么你的这句input.open("tmp.txt",ios::in);将在普通双击的时候无法打开文件而失败。解决办法就是把tmp.txt文件放到exe目录去。
另外你的编程习惯不好,打开文件一般都要判断是否成功,不成功一看就知道是什么问题。

在项目设置的调试选项里面,可以修改工作目录,默认和exe不在同一个目录
参考技术A 可能是动态链接库的问题
你的VS2010编译时候可能用的动态链接,这时候有些dll在其他目录下 在VS2010执行时 会把那些路径加上去,在你自己的debug目录执行时,不一定加

你改成静态链接 就可以执行了追问

好像还是不行? 但是在命令行执行却可以成功! 你编译一下帮我看看吧!

追答

这个不好解释了啊
命令行可以 windows双击不可以 难道有执行用户权限的问题

本回答被提问者采纳
参考技术B 错误提示是什么?贴出来

VS2010 C++ MFC写的程序编译可以正常运行,但是我想直接运行,DEBUG里找不到EXE文件

参考技术A 你重新生成一下,然后在你的项目的上一级目录中找到Debug目录,里面有exe文件,不是在项目文件夹内的Debug文件夹。

以上是关于C++程序在VS2010中可以运行 但是debug里面的可执行文件不能单独运行 而DEVC++则均可以 啥情况 求解答。的主要内容,如果未能解决你的问题,请参考以下文章

VS2010 C++ MFC写的程序编译可以正常运行,但是我想直接运行,DEBUG里找不到EXE文件

vs2015写c++不是内部或外部命令,也不是可运行的程序或批处理文件

为何刚装的vs2010 ,调试c++时显示 "此项目4 - Debug Win32已过期"?求大神帮忙!!

vs2010中release模式下调试程序

如何在VS2010中运行编译C和C++?

新手学C++,用vs2010运行书上的一个实例时出现问题,求解~~