我正在尝试创建一个文件,其中一个参数已传入方法并且类型为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'。 –