如何在C#应用程序中使用C++库?

mpe*_*pen 11 c# c++ visual-studio

到目前为止,我已经想出我需要重新编译库.dll而不是a .lib,启用/clr/EHa不是/EHsc.现在我有了一个托管的dll,我在C#项目中添加了它作为参考.

现在我该如何使用它?

我准备写一些包装器,但我不知道从哪里开始或如何"看到"我获得了哪些功能.我已经阅读了一些关于类名称和函数如何被编译器破坏的内容...我是否需要返回并在__declspec任何地方添加导出(如果是这样,怎么样?),或者VS2010中是否有选项说"不要破坏它!"?

有问题的C++库仍在积极开发中,所以我希望我能尽可能少地修改C++库,只需用几个开关定期重新编译它,然后根据需要公开新的功能.

And*_*rsK 8

如果要编译C++(如果最初是非托管C++),则需要做的不仅仅是添加/ clr开关.为了让C#使用DLL,您需要创建托管类和基于CTS的其他类型,这些类型与C#(.NET)兼容.

查看和参考课程.

一本好书,阅读有关的主题(恕我直言)是这一个


Ed *_* S. 6

您可以将函数作为C样式函数公开(即,不进行修改),也可以将它们作为COM对象公开.