我在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#垃圾收集,它没有任何区别。
有人有什么建议吗?
答案 0 :(得分:0)
试试这个并查看它返回的内容:
System.Diagnostics.Debug.WriteLine("calling DoSomething()");
System.Diagnostics.Debug.WriteLine((myPointer.DoSomething()).GetType().Name);
System.Diagnostics.Debug.WriteLine("finished call to DoSomething()");