Wie konvertiert man einen String in LPCWSTR ???
-
Irgendwie krieg ich es nicht hin:
Ich möchte eine wmv-datei einlesen, möchte dazu aber noch ein paar Informationen aus dem Header auslesen. Hier mein Code:
HRESULT hr6 = pwmHeaderInfo->GetAttributeByName(&m_wStreamNumber, CA2WEX<>(m_sFileName.c_str()), &wmAttrDateType, NULL, &wAttrLength); if (hr6 != S_OK) AfxMessageBox("Failed to get attribute from the video header!");
GetAttributeByName will aber für den Dateinamen unbedingt ein LPCWSTR ... und ich hab den Dateinamen nur in einem String ...
Kann mir jemand helfen???
-
-
PWCHAR WString( const char* str ) { if( str == NULL ) { return NULL; } int iBufSize = MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED, str, -1, NULL, 0 ); WCHAR* wstr= new WCHAR[iBufSize+1]; MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED, str, -1, wstr, iBufSize ); return (wstr); }
Jedoch darauf achten, den Buffer wieder freizugeben und einen möglichen Fehlercode abzufangen.
-
2Atlantis schrieb:
GetAttributeByName will aber für den Dateinamen unbedingt ein LPCWSTR ... und ich hab den Dateinamen nur in einem String ...
Kannst du aus m_sFileName einen std::wstring machen? Dann bekommst du die Lösung praktisch umsonst.