我正在尝试创建一个文件,其中一个参数已传递给该方法,并且是 PCWSTR 类型。我的代码创建一个 .url 文件并将 URL 保存到文件中:
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[]。