自动换行c++;dll转换成c# 我想在C++项目中使用C++库。是否有自动导入所有类的包装工具?

自动换行c++;dll转换成c# 我想在C++项目中使用C++库。是否有自动导入所有类的包装工具?,c#,c++,dll,wrapper,C#,C++,Dll,Wrapper,如果这是非托管代码,则可以使用。另一种可能是使用C++/CLI扩展将代码编译成可直接使用的托管程序集。在.Net中使用本机.dll的过程称为p/Invoke。请看下面的示例 请注意,您必须将生成目标与.dll的版本相匹配。因此,对于x86.dll,您需要将项目锁定到x86,与x64相同 注意2:您只需要锁定正在执行的项目(.EXE),而不需要锁定从.EXE加载的任何其他项目。Net将自动将.Net.dll与CPU目标类型匹配(如果它们设置为任何) From:您可以使用“dumpbin/expor

如果这是非托管代码,则可以使用。另一种可能是使用C++/CLI扩展将代码编译成可直接使用的托管程序集。

在.Net中使用本机.dll的过程称为p/Invoke。请看下面的示例

请注意,您必须将生成目标与.dll的版本相匹配。因此,对于x86.dll,您需要将项目锁定到x86,与x64相同

注意2:您只需要锁定正在执行的项目(.EXE),而不需要锁定从.EXE加载的任何其他项目。Net将自动将.Net.dll与CPU目标类型匹配(如果它们设置为任何)

From:您可以使用“dumpbin/exports”或依赖项walker(dependence.exe)查看导出的符号。它们都包含在VisualStudio中。

< P>可以帮助创建由两个部分组成的包装器,一个是C++的,一个是C的。 不过,设置正确的生成文件需要一些工作

另一种需要更多手动编码的方法是C++/CLI

对于纯c API,我更喜欢p/invoke而不是它们中的任何一个。有一个程序可以自动转换c头。如果我没记错的话,它被称为“P/Invoke Interop Assistant”或“Interop Signature Toolkit”


还有一个看起来很酷的库。

我想使用这个库,它是托管程序集吗?如果不是,我该怎么做呢?这似乎是非托管代码。因此,您可以使用属性为要调用的函数声明托管包装器。+1是第一个回答OP问题的答案。