如何将应用程序文件路径作为字符串C ++

时间:2016-07-23 02:27:29

标签: c++ dev-c++

我有一个名为" ExePath"

的函数
string exepath()
{
char buffer[MAX_PATH];
GetModuleFileName( NULL, buffer, MAX_PATH );
return std::string(buffer);
}

这将返回应用程序的路径。 后来,我尝试将应用程序复制到另一个地方。

CopyFile(exepath, "C:\\Example\\Example.exe", FALSE);

编译时出现以下错误:

[Error] cannot convert 'std::string' to 'LPCSTR' for argument '1' to 'WINBOOL CopyFileA(LPCSTR, LPCSTR, WINBOOL)' 

我认为它不能将字符串用作字符串。什么? 基本上我试图找到应用程序已执行的路径并将其复制到另一个地方。任何和所有的帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

LPCSTR是Const STRing的长指针(const char *),string::c_str函数会将相应的const char *返回到您的string类。

所以第一个参数应该是exepath.c_str()

CopyFile(exepath.c_str(), "C:\\Example\\Example.exe", FALSE);