我有一种期望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归因
不隶属于 StackOverflow
scroll top