简体   繁体   English

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

[英]How to convert Variant Safe Array into Char using C++ win32 API?

Hai i want to convert the &var values into char array. 我想将&var值转换为char数组。 how can i achieve this? 我怎样才能做到这一点? i am using C++ Win32 API. 我正在使用C ++ Win32 API。 安全数组到字符

Open image in another tab,you will get clear View. 在另一个选项卡中打开图像,您将获得清晰的视图。

Thanks in advance. 提前致谢。

The easiest way is to use ATL::CComSafeArray. 最简单的方法是使用ATL :: CComSafeArray。 Assume you have a pointer to safe array in variable pSa, 假设您在变量pSa中有一个指向安全数组的指针,

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

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

If you want to use just win32, 如果您只想使用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;
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM