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


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

    using System.Runtime.InteropServices;

    之后才可以调用[DllImport]方法。

    另一种方法是直接使用CLR,生成托管C++dll库。

    创建流程

    例程如下
    C++ dll:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    // 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#语言:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    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();

            }

        }

    }

    以上就是C#调用C++ 动态链接库dll 的内容,更多相关内容请关注PHP中文网(www.php.cn)!

  • 相关阅读:
    爬虫之移动端数据爬取
    Python网络爬虫之图片懒加载技术、selenium和PhantomJS
    iOS-类方法
    iOS-二进制,十进制,十六进制的相互转换
    iOS-category
    iOS-.h和.m文件
    iOS-关于@property和@synthesize
    自定义控件-使用frame和代码的自定义UI控件
    跨平台开发
    GitHub探索
  • 原文地址:https://www.cnblogs.com/ximi07/p/12371260.html
Copyright © 2020-2023  润新知