[英]MultiByteToWideChar doesn't work properly
我正在嘗試使用MultiByteToWideChar
api。 對於lpWideCharStr
,當我使用具有動態內存分配的指針時,它可以正常工作。 但是現在我應該使用一個帶有靜態內存分配的指針,正如您在代碼中看到的那樣。 並且它不能正常工作,返回 0。
它出什么問題了?
我應該如何在MultiByteToWideChar
為lpWideCharStr
使用靜態內存分配指針?
感謝您的解決方案。
#include <windows.h>
#include <iostream>
#include "Shlwapi.h"
#pragma comment(lib,"shlwapi.lib")
void main(int argc, char *argv[]){
int iToSizeB = 0;
iToSizeB = MultiByteToWideChar(CP_UTF8, 0, argv[1], -1 , NULL, 0);
LPWSTR lpFileAddress[260] = {0};
int nResult = 0;
//MultiByteToWideChar function reurns 0 !!!
nResult = MultiByteToWideChar(CP_UTF8, 0, argv[1], -1, lpFileAddress[0], iToSizeB);
}
可能你的意思是:
WCHAR lpFileAddress[260] = {0};
nResult = MultiByteToWideChar(CP_UTF8, 0, argv[1], -1, lpFileAddress, iToSizeB);
在您的代碼中,根據需要定義 WCHAR 指針數組: LPWSTR lpFileAddress[260]
而不是WCHAR
數組: WCHAR lpFileAddress[260] = {0};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.