我正在嘗試創建一個文件,其中一個參數已傳入方法並且類型爲PCWSTR。我的代碼創建的.url文件並保存網址到文件:如何將PCWSTR轉換爲char []或wchar_t []
wchar_t array1[] = "[InternetShortcut]\nURL=";
wchar_t array2[] = pdwFavoriteUrl;
wchar_t * DataBuffer = new wchar_t[wcslen(array1) + std::strlen(array2) + 1];
std::strcpy(DataBuffer,array1);
std::strcat(DataBuffer,array2);
// Write data to file
DWORD dwBytesToWrite = (DWORD)strlen(DataBuffer);
DWORD dwBytesWritten = 0;
BOOL bErrorFlag = FALSE;
bErrorFlag = WriteFile(hFile, DataBuffer, dwBytesToWrite, &dwBytesWritten, NULL);
if (FALSE == bErrorFlag)
{
// Log error
hr = E_FAIL;
}
else
{
if (dwBytesWritten != dwBytesToWrite)
{
// Log error
hr = E_FAIL;
}
else
{
// Log success
hr = S_OK;
//_tprintf(TEXT("Wrote %d bytes to %s successfully.\n"), dwBytesWritten, argv[1]);
}
}
CloseHandle(hFile);
我知道,代碼將無法編譯原樣,因爲有Unicode和非Unicode字符串方法的說法相互矛盾。關注行是這一個:
wchar_t array2[] = pdwFavoriteUrl;
pdwFavoriteUrl的類型是PCWSTR的和有沒有辦法解決它。請幫助將其轉換爲wchar_t [](首選)或char []。
我只是從它創建一個'std :: wstring'並使用緩衝區(C++ 11)。 – chris
數組無法用指針初始化。看起來你並不需要'array2'。 –