簡體   English   中英

無法將參數從WCHAR [100]轉換為WCHAR **

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM