我有一个名为" 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)'
我认为它不能将字符串用作字符串。什么? 基本上我试图找到应用程序已执行的路径并将其复制到另一个地方。任何和所有的帮助表示赞赏。
答案 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);