[英]Cannot convert parameter from WCHAR[100] to WCHAR**
我有一個期待WCHAR **的方法,我需要從該方法獲取一些數據。 我聲明一個數組WCHAR [100]並將其傳遞給函數。 編譯器將引發以下錯誤:
WCHAR result[100];
UINT i;
hr = SomeFunc(handle, &i, result);
錯誤C2664:“ XXXX”:無法將參數3從“ WCHAR [100]”轉換為“ WCHAR **”
一般而言,如果函數使用指向指針的指針(在這種情況下為WCHAR**
),則它將分配自己的內存,並將指向該指針的指針設置為該內存。 SomeFunc
的文檔應該描述這是否確實發生了。
如果真是這樣,那么您可能需要類似以下內容:
WCHAR* result = NULL;
UINT i;
hr = SomeFunc(handle, &i, &result);
如果成功,然后利用result
。
當然,在這種情況下,您還很可能需要擔心釋放result
設置為指向的內存。 SomeFunc
的文檔中應明確說明執行此操作的必要條件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.