本文介绍了如何从C#返回列表,并通过COM在VC ++中使用它的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何从C#方法返回列表,然后使用C ++中的列表返回值u能给予指导该怎么办呢??结果
我喜欢去下面的方式我的完整方案:
在C#中DemoLib.cs
USNG系统;使用System.Collections.Generic;
公共接口IDiscover
{
无效GetList1();
字符串GetList2();
名单,LT;字符串> GetList3();
};
命名空间DemoLibrary
{
类DemoLib
{
公共无效GetList1()
{
Console.WriteLine(我是从虚空的GetList());
}
公共字符串GetList2()
{
Console.WriteLine(我是从字符串的GetList());
返回堆栈溢出;
}
公开名单<串GT; GetList3()
{
名单,LT;字符串> LI =新的List<串GT;();
li.Add(印度);
li.Add(美国);
li.Add(伦敦);
Console.WriteLine(我是从列表<串GT;的GetList());
返回力;
}
成功打造和创建DemoLib.dll
我复制DemoLib.dll到c:\DemoLib.dll并在c Demolib.tlb使用regasm:\
在VC ++现在我甲肝的main()
DemoLibMain.vc ++
#包括<列表>
#包括LT&;&stdio.h中GT;
无效的主要()
{
HRESULT HR = CoInitialize的(NULL);
IDiscoverPtr IPTR(__ uuidof(DemoLib));
Iptr-> GetList1();
的std ::字符串str = Iptr-> GetList2();
的printf(%S,STR); // dispalys空insted的堆栈溢出的,但是当我调试它
显示了值堆栈溢出在海峡。
IPTR - >(怕因为它亘古不给GetList3())
当我被迫写Iptr-> GetList3()它显示误差
解决方案
Same question yesterday:
(Short answer: List won't be included in the COM interface because it uses a generic type).
这篇关于如何从C#返回列表,并通过COM在VC ++中使用它的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!