前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C#调用C++ DLL

C#调用C++ DLL

作者头像
江湖评谈
发布2023-12-28 14:27:30
1510
发布2023-12-28 14:27:30
举报
文章被收录于专栏:天下风云天下风云

前言

很多人说,C#底层太难了,今天搞个简单点的。看下如何通过最简单的方式C#调用C++写的DLL。以VS2022为蓝本。

C++

首先新建一个具有导出项的C++ DLL动态链接库项目,用其它的项目新建,比如动态链接库DLL项目,或者空项目或有各种问题。打开VS2022,选择如下图所示:

取名叫Dll1,项目建好了之后,结构如下图:

右击源文件-》添加-》新建项-》文件名:FileName.cpp,源文件文件夹下多了一个FileName.cpp的C++文件。其它文件是默认创建的,不用管它。

FileName.cpp添加如下代码

代码语言:javascript
复制
#include "pch.h"


extern "C" __declspec(dllexport) int Add(int x, int y)
{
#ifdef _DEBUG
  return x;
#else
  return y;
#endif
}

把Dll1项目生成下,.../x64/Debug目录下找到Dll1.dll。就是生成好的C++ DLL了。不需要任何设置。

C#

新建一个C#控制台应用程序,代码如下:

代码语言:javascript
复制
namespace ConsoleApp1
{
    public class Test
    {
        [DllImport("E:\\Visual Studio Project\\Test_\\x64\\Debug\\Dll1.dll")]
        public static extern int Add(int a, int b);

        internal class Program
        { 
            static void Main(string[] args)
            {
                Console.WriteLine(Add(33, 2));            
                Console.ReadLine();
            }
        }
    }
}

DllImport里面包含的即是上面C++生成的Dll1的路径。

调用结果如下:

以上为最简单的C#调用C++ DLL的过程,全程不需要任何库文件,以及编译方面的设置

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-12-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 江湖评谈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • C++
  • 把Dll1项目生成下,.../x64/Debug目录下找到Dll1.dll。就是生成好的C++ DLL了。不需要任何设置。
  • C#
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档