一个问题纠结了好几天了,终于找到答案了。
C#语言编写的应用程序作为容器,调用C++的Active控件,需要从控件获得字符串。
如果用char*作为形参,在C#容器中,形参会是sbyte类型,得到的只是一个字节。见:http://bbs.csdn.net/topics/380170713
经过测试,BSTR*作为字符串传出形参,BSTR作为字符串传入形参。是最易接受的。BSTR*在C#中解析为ref string,BSTR在C#中解析为string;而BSTR在C++中会解析为LPCTSTR。
附加知识:
对BSTR类型数据处理,分配空间用sysallocstring(),回收用sysfreestring();
字符串处理借助 _bstr_t结构