C#下分别调用C++/C#生成的dll文件

Posted 无声蝉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#下分别调用C++/C#生成的dll文件相关的知识,希望对你有一定的参考价值。

1、C#下分别调用C++生成的dll文件

第一步,新建项目

选择 Win32控制台应用程序或者Win32项目均可

点击“确定”后,选择DLL 和 空项目,点击“完成”

添加文件“MyDll.h” “MyDll.cpp”

#pragma once

#define EXEAPI extern "C" __declspec(dllexport) // C方式导出函数
EXEAPI int AddValue(int x, int y);
#include "MyDll.h"
#include <stdlib.h>

//求两个值得和   
int AddValue(int x,int y)

	return x + y;

编译生成 Win32Dll.dll

第二步 重新建立C# win32 项目 MyDllDemo ,添加新类class DllTest

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.IO;

namespace MyDllDemo

    class DllTest
    
        const string dllpathfile = "Win32Dll.dll";
        
        [DllImport(dllpathfile, EntryPoint = "AddValue", CallingConvention = CallingConvention.Cdecl)]
        public static extern int AddValue(int x, int y); 
    

class Program 中调用

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;

namespace MyDllDemo

    class Program
    
        static void Main(string[] args)
        
            int result = DllTest.AddValue(2, 3);
            Console.WriteLine(result);
            Console.ReadKey();
        
    

编译运行

2、C#下分别调用C#生成的dll文件

第一步,建立C#类库CSharpClassLib,建立新类 TestClass

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

namespace CSharpClassLib

    public class TestClass
    
        public  void Hello()
        
            Console.WriteLine("Hello World!");
         
    

第二步,上述编译生成CSharpClassLib.dll,将其拷贝到MyDllDemo 项目的debug的bin下,然后在MyDllDemo 项目下添加 “引用”,将此dll引用。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
using System.IO;
using CSharpClassLib;

namespace MyDllDemo

    class Program
    
        static void Main(string[] args)
        
            TestClass test = new TestClass();
            test.Hello();
            Console.ReadKey();
        
    

第三步,编译执行

以上是关于C#下分别调用C++/C#生成的dll文件的主要内容,如果未能解决你的问题,请参考以下文章

dll文件如何用C语言生成

C# 中如何调用DLL文件?

c语言如何做成.dll的东西?然后用c#做界面调用这个c程序?

c#编程添加引用dll文件后怎样调用

C#上位机开发(十四)—— C#中通过dll库调用外部C/C++函数

C#上位机开发(十四)—— C#中通过dll库调用外部C/C++函数