在VC遇到需要对文件进行自我复制的情况,但是编译中出现了奇怪的程序无法脱离编译环境的问题具体表现:程序在编译器下一切正常,包括release/debug,但是离开编译器后无法找到自身并读取。问题代码段
//...Function to get file name
char* GetFileName(void)
{
char* filename;
filename=new char[MAX_LENGTH];
memset(filename,0,MAX_LENGTH];
GetModuleFileName(NULL,filename,MAX_LENGTH); return filename;
}//...Function to copy itself
bool Copy(const char* filename,const char* tarname)
{
ifstream fin;
ofstream fout; fin.open(filename,ios::binary);
fout.open(tarname,ios::trunc|ios::binary);
try
{
if(fin.fail())
{
throw "Unable to read";
return false;
}
if(fout.fail())
{
throw "Unable to write";
return false;
}
}
catch(char* tmp)
{
cout<<tmp<<endl;
system("pause");
}
//....其他代码
return true;
}
在编译器调试的时候没有遇到任何问题,包括对自身进行复写或者复制到其他位置但是离开编译环境之后就遇到无法读取自身的问题,很困惑。
//...Function to get file name
char* GetFileName(void)
{
char* filename;
filename=new char[MAX_LENGTH];
memset(filename,0,MAX_LENGTH];
GetModuleFileName(NULL,filename,MAX_LENGTH); return filename;
}//...Function to copy itself
bool Copy(const char* filename,const char* tarname)
{
ifstream fin;
ofstream fout; fin.open(filename,ios::binary);
fout.open(tarname,ios::trunc|ios::binary);
try
{
if(fin.fail())
{
throw "Unable to read";
return false;
}
if(fout.fail())
{
throw "Unable to write";
return false;
}
}
catch(char* tmp)
{
cout<<tmp<<endl;
system("pause");
}
//....其他代码
return true;
}
在编译器调试的时候没有遇到任何问题,包括对自身进行复写或者复制到其他位置但是离开编译环境之后就遇到无法读取自身的问题,很困惑。
GetCurrentDirectory获得的是当前程序所在文件夹,但是无法获得文件名……