我的c#非常糟糕,以后我会得到一本书或其他东西来改进它。现在,我在c#wpf中有一个gui,在本机c ++中有一个dll库。我在互联网上看到的用于p / invoke的所有教程中都没有类。
这是我的代码在c ++中的样子:
//Dostuff.h
class foo {
__declspec(dllexport) void dostuff();
}
我如何从c#调用dll?提前谢谢。
答案 0 :(得分:1)
没有包装器的C ++库在构建它的C ++编译器之外通常是无用的。 C#不会让你轻松使用这样的库......即使你设法做到这一点,事情也可能会以各种有趣的方式破解。
但是你有两个相对安全的选择:
extern "C"
包装函数。您将获取指向要使用的对象的指针,并在该对象上调用函数。如果你走那条路,那就差不多了你可以达到普遍兼容的路线;任何可以调用C函数的语言都可以使用该库。