如何获取返回值为 VARIANT 的变量内容

jintiann 2015-04-29 09:45:53
有个COM控件函数为
VARIANT GetResultNamesDuringMeas()
{
VARIANT result;
InvokeHelper(0x1, DISPATCH_METHOD, VT_VARIANT, (void*)&result, NULL);
return result;
}

在MFC中调用如下 VARIANT var = pITestbed.GetResultNamesDuringMeas(); ,调试发现 var.vt = 52428 ,有个C#里面里面的调用得到的结果是字符串数组。
...全文
315 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zgl7903 2015-05-04
  • 打赏
  • 举报
回复
可以试试 _bstr_t _bstr_t bstr(var); CString str ( (LPCTSTR)bstr );
jintiann 2015-05-02
  • 打赏
  • 举报
回复
现在想写个C# dll,直接在mfc下面调用,但是C#中string参数在MFC下面该如何接收呢?
schlafenhamster 2015-04-30
  • 打赏
  • 举报
回复
enum VARENUM { VT_EMPTY = 0, VT_NULL = 1, VT_I2 = 2, VT_I4 = 3, VT_R4 = 4, VT_R8 = 5, VT_CY = 6, VT_DATE = 7, VT_BSTR = 8, VT_DISPATCH = 9, VT_ERROR = 10, VT_BOOL = 11, VT_VARIANT = 12, VT_UNKNOWN = 13, VT_DECIMAL = 14, VT_I1 = 16, VT_UI1 = 17, VT_UI2 = 18, VT_UI4 = 19, VT_I8 = 20, VT_UI8 = 21, VT_INT = 22, VT_UINT = 23, VT_VOID = 24, VT_HRESULT = 25, VT_PTR = 26, VT_SAFEARRAY = 27, VT_CARRAY = 28, VT_USERDEFINED = 29, VT_LPSTR = 30, VT_LPWSTR = 31, VT_RECORD = 36, VT_FILETIME = 64, VT_BLOB = 65, VT_STREAM = 66, VT_STORAGE = 67, VT_STREAMED_OBJECT = 68, VT_STORED_OBJECT = 69, VT_BLOB_OBJECT = 70, VT_CF = 71, VT_CLSID = 72, VT_BSTR_BLOB = 0xfff, VT_VECTOR = 0x1000, VT_ARRAY = 0x2000, VT_BYREF = 0x4000, VT_RESERVED = 0x8000, VT_ILLEGAL = 0xffff, VT_ILLEGALMASKED = 0xfff, VT_TYPEMASK = 0xfff }; 52428=0xCCCC 没定义
jintiann 2015-04-29
  • 打赏
  • 举报
回复
以下C#的语句在MFC下面如何实现? string[] during = pITestbed.GetResultNamesDuringMeas(); for(int i = 0; i < during.Length; i++) { pumaResultNames.Items.Add(during[i] + ", " + unitDuring[i]); }

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧