2

C#调用C++ 动态链接库dll

 1 year ago
source link: https://studygolang.com/articles/36003
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

C#调用C++ 动态链接库dll

xiaotu123 · 大约4小时之前 · 42 次点击 · 预计阅读时间 1 分钟 · 大约8小时之前 开始浏览    

在过程中发现两种方法解决问题:一种是非托管C++创建的dll库,需要用静态方法调用。这种方法无法在C#的reference中直接引用,而是要用静态调用的方法, 其他博客已经介绍的很详尽,唯一需要补充的是,C#文件需要先:

using System.Runtime.InteropServices;

之后才可以调用[DllImport]方法。 另一种方法是直接使用CLR,生成托管C++dll库。 创建流程 例程如下 C++ dll:

// CPPlibdemo.h
#pragma once

using namespace System;


namespace CPPlibdemo {

    public ref class Class1
    {
        // TODO: Add your methods for this class here.
    public:
            String ^getgreating(){

            return "hello world";
        }
    };
}

C#语言:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using CPPlibdemo;

namespace ConsoleApplication5
{
    class Program
    {
        static void Main(string[] args)
        {
            Class1 clrdemo = new Class1();


            Console.Write(clrdemo.getgreating());
            Console.ReadLine();
        }
    }
}

有疑问加站长微信联系(非本文作者))

280

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK