CPPCLI将第三方DLL链接到CSharp项目
最近需要将第三方的 DLL 封装成 csharp 的模块,可是我没有源码,只有头文件,网上综合调查了方案,最后选择了 C++/CLI
具体可见微软的官方文档
第一步,创建 CLR 项目
这里默认你已经通过各种手段获得了 DLL 和头文件
这里使用 Visual Stdio 创建一个新的 C++ CLR 项目
基本编辑
这里的基本语法还是和 C++一样的
进入项目,自行创建一个类,就会生成一个 CPP 和 H 文件
这里需要在头文件中包含 DLL 内相关函数和类定义的头文件,直接使用绝对路径包含即可
|
然后像 C++创建一个类那样,设置构造函数和成员函数,并实现
这里你的实现可以直接调用 DLL 中的函数,实现封装。
设置编译选项
右键项目,打开属性,将 Release 的配置类型修改为“动态库(. dll)”,注意这里的目标平台需要和你的 DLL 的目标平台相兼容
选择"高级",设置运行时框架,这里决定了你编译出 DLL 的运行时框架,需要与你的 CS 项目版本相同
选择 “VC++目录” -> “库目录”,将你的 DLL 文件路径写进去
选择"链接器" -> “常规” -> “附加依赖项”,添加你的 LIB 路径,然后生成项目即可
你会在项目的生成目录发现两个 DLL,这里要注意!有一个 DLL 是你生成的 DLL,还有一个 DLL 名为 Ijwhost.dll,这个 DLL 是 C++/CLI 运行时必须的依赖,需要一起打包进项目中,同时还需要打包你原来的第三方 DLL,也就是说,最后运行时需要 3个dll
导入
进入项目,将生成的模块 DLL 导入即可
参考
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 墨池码窖 | Sentixxx's Blog!
