【发布时间】:2012-02-06 19:04:57
【问题描述】:
仅供参考,我是 COM\ATL 和 unicode 的初学者
我在我的代码中使用SafeArrayPutElement(safearray*,LONG,void*),问题是......
在这里,当我将第三个参数指定为 L"ItWorks" 时,该函数可以正常工作
即
SafeArrayPutElement(safearray*,LONG, L"ItWorks");
但是如果我使用
wchar_t str;
str = 'a';
SafeArrayPutElement(safearray*,LONG,&str);
这个函数失败说E_OUTOFMEMORY
我的需要是,我在char* 变量中有一个字符串,我需要如何将其用作上述函数的第三个参数。
任何人都可以在这方面帮助我。
TIA
纳温
【问题讨论】:
-
发布真实代码,将 safearray* 和 LONG 传递给函数永远无法编译。 SAFEARRAY 中的字符串必须是 BSTR,而不是 wchar_t。