c++ - 如何使用 C++ win32 API 将 Variant Safe Array 转换为 Char?

标签 c++ windows winapi active-directory adsi

嗨,我想将 &var 值转换为 char 数组。 我怎样才能做到这一点? 我正在使用 C++ Win32 API。 Safe Array to Char

在另一个选项卡中打开图像,您将获得清晰的 View 。

提前致谢。

最佳答案

最简单的方法是使用 ATL::CComSafeArray。假设您在变量 pSa 中有一个指向安全数组的指针,

CComSafeArray<BSTR> array;
array.Attach(pSa);

for(int i=0; i< array.GetCount(); ++i)
{
  std::wcout << (const wchar_t*) array[i] << std::endl;
}

如果你只想使用 win32,

SafeArrayLock(pSa);
LONG uBound = -1, lBound = 0;
SafeArrayUBound(pSa,1,uBound);
SafeArrayUBound(pSa,1,lBound);
int nCount = uBound - lBound + 1;
for(int i = 0; i<nCount; ++i)
{
 std::wcout << ((BSTR*)(pSa->pvData))[i] << std::endl;
}

关于c++ - 如何使用 C++ win32 API 将 Variant Safe Array 转换为 Char?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13265181/

相关文章:

c++ - std::holds_alternative 可变参数模板

c++ - 如何匿名声明 std::thread?

windows - SSL 证书不适用于 Safari

windows - 在不知道 VID 和 PID 的情况下读取 USB HID 条码扫描器输入

c++ - 如何在不关闭父窗口的情况下关闭子窗口?

c++ - 如何访问 OpenCV 中的 vector 垫对象

c++ - Pixbuf 显示有关图像的错误信息

ios - 有没有办法在 Windows 上构建 IOS Unity 构建

c++ - MFC中如何在资源链中查找资源?

winforms - 最小化窗口上的 WINdows GUI 自动化