题
我有一种期望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
应该明确说出也需要做什么。
不隶属于 StackOverflow