我有一个需要WCHAR**的方法,我需要从这个方法中获取一些数据。我声明了一个数组WCHAR100并将其传递给函数。编译器抛出这个错误:
WCHAR result[100];
UINT i;
hr = SomeFunc(handle, &i, result);错误C2664:'XXXX‘:无法将参数3从'WCHAR 100’转换为'WCHAR **‘
发布于 2010-11-04 10:25:02
一般来说,如果一个函数将一个指针指向一个指针(在本例中为WCHAR**),那么它将分配自己的内存,并将指向该内存的指针设置为该内存。SomeFunc的文档应该描述是否确实发生了这种情况。
如果是这种情况,那么您可能需要如下内容:
WCHAR* result = NULL;
UINT i;
hr = SomeFunc(handle, &i, &result);如果成功,则使用result。
当然,在这种情况下,您还很可能需要担心释放result设置指向的内存。SomeFunc的文档也应该明确说明实现这一点所必需的内容。
https://stackoverflow.com/questions/4093353
复制相似问题