0

我在 C# 中有一个 COM 对象:

Class myClass = new Class;
IPClass myPointer = null;
myPointer = (IPClass) myClass.GetMyPointer();
bool myBool = myPointer.DoSomething();

C# 中的 myClass.GetMyPointer() 返回动态类型。在定义 COM 对象的原始代码中,myClass.GetMyPointer 返回指向 C++ 中的接口 IPClass 的指针。

当我测试我的 C# dll 时,我无法获得 myBool。VS 总是说 myBool 在当前上下文中不存在。但是 DoSomething 总是被执行。我只是无法取回返回值。我试图暂时停止从 C# 进行垃圾收集,但没有任何区别。

有人有什么建议吗?

4

1 回答 1

0

试试这个,看看它返回什么:

System.Diagnostics.Debug.WriteLine("calling DoSomething()");
System.Diagnostics.Debug.WriteLine((myPointer.DoSomething()).GetType().Name);
System.Diagnostics.Debug.WriteLine("finished call to DoSomething()");
于 2013-10-02T17:41:55.810 回答