我有一个期望WCHAR**的方法,我需要从这个方法中获取一些数据.我声明一个数组WCHAR [100]并将其传递给函数.编译器抛出此错误:
WCHAR result[100];
UINT i;
hr = SomeFunc(handle, &i, result);
Run Code Online (Sandbox Code Playgroud)
错误C2664:'XXXX':无法将参数3从'WCHAR [100]'转换为'WCHAR**'
一般来说,如果函数接受指向指针的指针(WCHAR**在这种情况下),那么它将分配自己的内存并设置指向该内存的指向指针.的文件SomeFunc应说明,如果这确实发生了什么.
如果是这种情况,那么您可能需要以下内容:
WCHAR* result = NULL;
UINT i;
hr = SomeFunc(handle, &i, &result);
Run Code Online (Sandbox Code Playgroud)
然后利用result如果成功.
当然,在这种情况下,您也很可能需要担心释放result设置为指向的内存.文档SomeFunc应该明确说明做什么也是必要的.
| 归档时间: |
|
| 查看次数: |
788 次 |
| 最近记录: |