2010-03-29 47 views
2

如何转换字符中的VC++ LPCTSTRCHAR到LPCTSTR


我使用MVC。

QByteArray qBary; 
qBary.append(temp); 
char toChar[512]; 
for(int ii = 0; ii < 512; ii++) 
{ 
    toChar[ii] = qBary[ii]; 
    if(qBary[ii] == '\0') 
    { 
     break; 
    } 
} 
SHFILEOPSTRUCT sf; 
memset(&sf, 0, sizeof(sf)); 
sf.hwnd = 0; 
sf.wFunc = FO_COPY; 
sf.pFrom = toChar; // error occurring here 

回答

5

如果您正在使用MFC(是你的标签应该是MFC而不是MVC):

char name[] = "your name"; 
CString sName(name); 
LPCTSTR lpszName = sName; 

,如果你使用的是Qt,看看QStringQByteArray

// (1) 
QString filename; 
LPCWSTR lpszFilename = filename.utf16(); // alternatively, .unicode() 
// alternatively, (2) 
QByteArray qBA("abcdef.txt"); 
QString qString(qBA); 
LPCWSTR lpszFileName = qString.utf16(); // or, .unicode() , .utf8() 

... 
sf.pFrom = lpszFileName; 
+0

你应该把你的代码块放在以换行符开始的问题中,并且每行代码前加4个空格。点击你的问题附近的'编辑'。 – 2010-03-29 08:57:08

+0

它看起来像你使用Qt,请添加到标签。 – 2010-03-29 08:59:01

+0

我正在使用MVC。 QByteArray qBary; qBary.append(temp); char toChar [512]; (int ii = 0; ii <512; ii ++) toChar [ii] = qBary [ii]; if(qBary [ii] =='\ 0') {break; }} SHFILEOPSTRUCT sf; memset(&sf,0,sizeof(sf)); sf.hwnd = 0; sf.wFunc = FO_COPY; sf.pFrom = toChar;//错误发生在这里 – Sijith 2010-03-29 09:00:04