好吧,我对所有这些 pinvoke 的东西有点迷失了。也许有人可以帮助我。
在我的头文件中得到了这个:
class A
{
public:
virtual B* Foo() const = 0;
};
cpp 文件:
extern "C" __declspec( dllexport ) B* A_1(A* aObj)
{
if(aObj)
return aObj->Foo();
else
return 0;
}
我试图在我的 c# 文件中导入它,如下所示:
[DllImport("Wrapper.dll")]
private static extern IntPtr A_1(IntPtr aObj);
接着
public IntPtr Foo()
{
return A_1(aObj);
}
但这没有用。稍后我必须使用这个 B 对象来调用它的方法。