首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

怎么传递CString数组到SAFEARRAY

2012-02-05 
如何传递CString数组到SAFEARRAY?我用C#写了一个com组件,里面有一个函数的参数是字符数组,想在VC中调用此C

如何传递CString数组到SAFEARRAY?
我用C#写了一个com组件,里面有一个函数的参数是字符数组,想在VC中调用此COM组件的函数,请问如何在VC中定义一个safearray字符数组,从而把这个数组作为参数传递过去?

如果直接传CString数组出错:
cannot convert parameter 11 from 'CString [100]' to 'SAFEARRAY *

请大侠们指点下

[解决办法]
不能直接复制,逐个字符写入
[解决办法]
编写接口,用标准的C接口,参数。
这样在不同的语言之间就可以相通了。
[解决办法]
SAFEARRAY *psa;
SAFEARRAYBOUND rgsabound[1];
rgsabound[0].cElements =num;
rgsabound[0].lLbound = 0;
psa = SafeArrayCreate(VT_BSTR,1,rgsabound);
for(long index=0;index<num;index++)
{
if(FAILED(SafeArrayPutElement(psa,&index,&bVal[index])))
::MessageBox(NULL,"bug!!","提示",MB_OK | MB_ICONWARNING);
}

[解决办法]
CString先转换成BSTR等,然后存入CComSafeArray
[解决办法]
类型差太远了

转换为标准的再传
[解决办法]

探讨

CString先转换成BSTR等,然后存入CComSafeArray

热点排行