如何將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)方法。 –