当前位置:首页 » 《随便一记》 » 正文

.net开发实践: C#如何调用C/C++库

18 人参与  2022年11月09日 10:33  分类 : 《随便一记》  评论

点击全文阅读


最近工作需要研究下C#能否调用已有的C/C++库,为此写了个小demo总结分享一下,供大家参考

开发环境

Windows平台:

Visual Studio 2019Visual Studio Code.NET SDK 6

C/C++动态库

安装插件

vscode安装CMake Tools & C/C++插件
在这里插入图片描述

配置工程

通过CMake插件配置C++动态库工程
在这里插入图片描述

生成的文件有2个地方需要改动

add_library改为SHARED类型
add_library(MyNativeLibrary SHARED MyNativeLibrary.cpp)
cpp里实现导出接口
extern "C"{    __declspec(dllexport) int __stdcall add(int a, int b) {        return a + b;    }}

编译生成

通过vscode底部build按钮编译,dll文件生成在build目录

C#工程

在cmd中使用dotnet命令创建console工程

> dotnet new console -o MyApp

修改Program.cs为如下内容

using System.Runtime.InteropServices;namespace NetCore{  public class Program   {      [DllImport(@"MyNativeLibrary\build\Release\MyNativeLibrary.dll", EntryPoint =        "add", CallingConvention = CallingConvention.StdCall)]     public static extern int Add(int a, int b);     public static void Main(string[] args)     {        int result = Add(1 ,2);        Console.WriteLine("result is {0}", result);        Console.ReadKey();      }   }}

dotnet run就可以看到运行效果了

> dotnet runresult is 3

小结

本文演示了C#调用C/C++动态库的方法,动态库部分需要熟悉vscode及cmake的使用,希望对大家能有帮助

源码地址

dotnet/MyApp

参考资料

C#调用C++
.net tutorial
VS Code with CMake Tools


点击全文阅读


本文链接:http://m.zhangshiyu.com/post/47609.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 相国独子的丫鬟砸坏我的玉佩后,我当场拒婚阅读_玉佩陈郡谢氏全新_小说后续在线阅读_无删减免费完结_
  • 手术时,我看着病人惨死最新试读_淼淼陆知衍姜颜全本完结_小说后续在线阅读_无删减免费完结_
  • 男友霸道给我开黑卡,转头却骂我是捞女最新章节_肖年顾客黑卡热文_小说后续在线阅读_无删减免费完结_
  • 他在回忆尽头全集_贺南舟许清梨叶絮完结txt_小说后续在线阅读_无删减免费完结_
  • 旅游结婚那天未婚夫另娶女秘书,我让他们一无所有连载_老公迎宾超长版_小说后续在线阅读_无删减免费完结_
  • 完结文异界修仙我的直播间能打赏核弹列表_完结文异界修仙我的直播间能打赏核弹(江流年沈红菱)
  • 全书浏览陪弟弟混骑行圈,离婚你哭什么?(韩星河柳千雪)_陪弟弟混骑行圈,离婚你哭什么?(韩星河柳千雪)全书结局
  • 老公出轨我助攻虐心反转_秦绍卿卿阿溪后续加长_小说后续在线阅读_无删减免费完结_
  • 替老婆坐牢出狱那天,我被送去斗兽场精校文本_许言沈宇郑子番茄热门_小说后续在线阅读_无删减免费完结_
  • 沐巍澜温溪:结局+番外(爱如一刹花火)电子书畅享阅读无广告
  • 傅凌川林柚续集(傅凌川林柚)章节前文+全书阅读(替嫁燃婚:小祖宗嘴硬腰软)最新连载
  • 资助生把导盲犬做成火锅后,我家杀疯了!列表_资助生把导盲犬做成火锅后,我家杀疯了!(陈米雪波波)

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1