无法将参数从WCHAR [100]转换为WCHAR **

时间:2010-11-04 02:14:52

标签: c++ wchar

我有一个期望WCHAR **的方法,我需要从这个方法中获取一些数据。我声明一个数组WCHAR [100]并将其传递给函数。编译器抛出此错误:

WCHAR result[100];
UINT i;
hr = SomeFunc(handle, &i, result);

错误C2664:'XXXX':无法将参数3从'WCHAR [100]'转换为'WCHAR **'

1 个答案:

答案 0 :(得分:5)

一般来说,如果函数接受指向指针(在这种情况下为WCHAR**),那么它将分配自己的内存并设置指向该内存的指向指针。 SomeFunc的文档应描述这是否确实发生了什么。

如果是这种情况,那么您可能需要以下内容:

WCHAR* result = NULL;
UINT i;
hr = SomeFunc(handle, &i, &result);

如果成功,则使用result

当然,在这种情况下,您也很可能需要担心释放result设置为指向的内存。 SomeFunc的文档应明确说明这样做的必要性。