我建了一个实体类
public class MemberInfo
{
private string strMemberID = “0”;
public string MemberID
{
get
{
return strMemberID;
}
set
{
strMemberID = value;
}
}
private string strMemberName = "0";
public string MemberName
{
get
{
return strMemberName;
}
set
{
strMemberName = value;
}
}
}
然后在里面写了一个方法来返回这个实体类
[Guid("66C93CF0-B586-4085-A142-664B0ADBAF93")]
[InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
public interface IInserData
{
[DispId(1)]
MemberInfo ShowMemberInfo();
}
[Guid("334708BF-98FA-43bd-9A75-69255BB69A09")]
[ClassInterface(ClassInterfaceType.None)]
[ProgId("GameDataStore.GameDataInsert")]
public class GameDataInsert : IInserData
{
public MemberInfo ShowMemberInfo()
{
MemberInfo mem = new MemberInfo();
mem.MemberID = "10";
mem.MemberName = "afsdaf";
return mem;
}
}
生成COM组件后,在C++里面调用这个方法返回对象,COM里面能不能这样写,还有怎么在C++里面调
public class MemberInfo
{
private string strMemberID = “0”;
public string MemberID
{
get
{
return strMemberID;
}
set
{
strMemberID = value;
}
}
private string strMemberName = "0";
public string MemberName
{
get
{
return strMemberName;
}
set
{
strMemberName = value;
}
}
}
然后在里面写了一个方法来返回这个实体类
[Guid("66C93CF0-B586-4085-A142-664B0ADBAF93")]
[InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
public interface IInserData
{
[DispId(1)]
MemberInfo ShowMemberInfo();
}
[Guid("334708BF-98FA-43bd-9A75-69255BB69A09")]
[ClassInterface(ClassInterfaceType.None)]
[ProgId("GameDataStore.GameDataInsert")]
public class GameDataInsert : IInserData
{
public MemberInfo ShowMemberInfo()
{
MemberInfo mem = new MemberInfo();
mem.MemberID = "10";
mem.MemberName = "afsdaf";
return mem;
}
}
生成COM组件后,在C++里面调用这个方法返回对象,COM里面能不能这样写,还有怎么在C++里面调
vc怎么调用c# 写的dll呢。 最好有个例子
COM是建立在接口上的,你没有提供MemberInfo的接口,C++怎么知道如何去用它呢?
简单的概念比简单的调用重要。.Net CCW通过IDispatch提供了MemberInfo的一些信息。
如果事先知道名字并不怕麻烦的话,你也可以通过IDispatch接口来操作MemberInfo:
先GetIDsOfNames,然后Invoke。