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文件的主要内容,如果未能解决你的问题,请参考以下文章
c语言如何做成.dll的东西?然后用c#做界面调用这个c程序?