如何使用C++生成动态链接库

这篇文章主要介绍“如何使用C++生成动态链接库”,在日常操作中,相信很多人在如何使用C++生成动态链接库问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用C++生成动态链接库”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

创新互联公司是专业的揭东网站建设公司,揭东接单;提供网站建设、网站制作,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行揭东网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

一,在Visual Studio 2017 上安装 C/C++ 支持

如何使用C++生成动态链接库

这一步是是为了在 VS 2017上一套开发,也可以使用其它工具开发C语言程序,甚至在 Linux 中使用 vim 编写、编译都行。

二,写一个简单的C语言程序、生成动态链接库

创建项目后,点击属性,选择生成 .so

如何使用C++生成动态链接库

然后新建一个 test.cpp 文件,右键 - 新建项,C语言代码如下

extern “C” {}

表示{}内的方法函数等可以为外部使用

extern "C" 
{
    int Sum(int a,int b) {
        return a + b;
    }
}

如何使用C++生成动态链接库

右键-生成

然后会要求你添加一个 Linux 主机连接。这里其实加上了没用,但vs必须要你加上才能生成、编译,实际对我们后面的操作没影响。

如何使用C++生成动态链接库

接下来,看图操作

点击菜单栏的生成-仅用于项目-仅链接xxx

然后下面下面输出栏会报错,不管他,再点击项目-右键生成

如何使用C++生成动态链接库

之后会生成 .so 文件,复制.so文件,存放好

如何使用C++生成动态链接库

三,C# 项目使用此动态链接库

建立一个.NET Core 项目,把 .so 文件复制进去,记得 “始终复制”

如何使用C++生成动态链接库

如何使用C++生成动态链接库

新建一个类,类名不重要,主要的是方法名称要一致,参数一致

头部引入

using System.Runtime.InteropServices;

类的代码如下

如何使用C++生成动态链接库

然后使用此类库

 public class Test
    {
        [DllImport("./libProject2.so",CallingConvention =CallingConvention.Cdecl)]
        public static extern int Sum(int a,int b);
    }
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(Test.Sum(666,666));
            while (true)
            {
                Console.WriteLine("输入两个数,用空格隔开,如 666 666");
                string[] vs = Console.ReadLine().Split(" ");
                int a = Convert.ToInt32(vs[0]);
                int b = Convert.ToInt32(vs[1]);
                Console.WriteLine(Test.Sum(a,b));
            }
        }
    }

如何使用C++生成动态链接库

发布后打包到 Linux 中运行

如何使用C++生成动态链接库

如何使用C++生成动态链接库

到此,关于“如何使用C++生成动态链接库”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!


分享文章:如何使用C++生成动态链接库
文章路径:http://myzitong.com/article/ieoigj.html