如何将System :: string^in转换为LPCTSTR? 由于我的要求是能够使用的功能克隆文件的CopyFile,它如果我给修复的域名(OldFile.jpg和LatestFile.jpg)其参数正常工作(以下代码:正常工作)字符串^到VC++ 2010中的LPCTSTR(Windows窗体应用程序)
LPCTSTR in_f,out_f;
in_f = _T("d:\\Old.jpg");
out_f = _T("d:\\Latest.jpg");
CopyFile(in_f,out_f,false);
上面的代码克隆Old.jpeg到一个Latest.jpg但是当我试图给名称(Latest.jpg),这是由一些字符串就不会创建文件出来(下面的代码:不工作)
String^ Name = "Latest";
//------Capture Current Date & Time
DateTime datetime = DateTime::Now;
//-------Convert Date Timt in to String
Name = Name + String::Format("{0}",datetime);
Name = Name->Replace('/','-');
Name = Name->Replace(':','-');
Name = Name + ".jpg";
LPCTSTR in_f,out_f;
in_f = _T("d:\\Old.jpg");
out_f = (LPCTSTR)Name; //Trying to Assign Current Latest file Name With date Time here
CopyFile(in_f,out_f,false);
The Prob lem是CopyFile Took LPCTSTR类型作为参数,因为我给一个类型System :: string ^,所以建议我如何将此System :: string ^转换为LPCTSTR,以便我可以添加当前日期时间我的文件的名称。 我使用VC++ 2010和Windows窗体应用程序
如何[字符串转换为字符数组(https://msdn.microsoft.com/en-us/ library/ezftk57x(v = vs.110).aspx?cs-save-lang = 1&cs-lang = cpp),然后获取指向数组中的字符的指针? –
使用Marshal :: StringToHGlobalAnsi或StringToHGlobalUnicode,具体取决于您是否使用UNICODE生成。努力摆脱tchar,它是绝望的过时,使用CopyFileW,所以你可以依靠LPCWSTR。当然可以考虑使用File :: Copy()来代替,所以这些都不是必需的。 –
在.NET中使用[System.IO.File.Copy](https://msdn.microsoft.com/en-us/library/system.io.file.copy%28v=vs.110%29.aspx)方法。 –