要在C#中调用C++库,您需要使用平台调用(P/Invoke)技术。这是一个允许托管代码(如C#)与非托管代码(如C++)进行交互的机制。以下是一个简单的示例,说明如何在C#中调用C++库:
- 首先,创建一个C++库。以下是一个简单的C++库,包含一个名为
Add
的函数,该函数接受两个整数并返回它们的和:
// CppLibrary.h
#pragma once
extern "C" __declspec(dllexport) int Add(int a, int b);
// CppLibrary.cpp
#include "CppLibrary.h"
int Add(int a, int b) {
return a + b;
}
确保将此代码编译为动态链接库(DLL)。
-
在C#项目中,添加对C++库的引用。将C++库的DLL文件放在C#项目的输出目录中(例如,
bin\Debug
或bin\Release
)。 -
在C#代码中,使用
DllImport
属性声明C++库中的函数。然后,您可以像调用任何其他C#方法一样调用该函数。以下是一个示例:
using System;
using System.Runtime.InteropServices;
namespace CSharpApp
{
class Program
{
// 声明C++库中的Add函数
[DllImport("CppLibrary.dll")]
public static extern int Add(int a, int b);
static void Main(string[] args)
{
int result = Add(3, 4);
Console.WriteLine($"3 + 4 = {result}");
}
}
}
现在,当您运行C#程序时,它将调用C++库中的Add
函数,并将结果打印到控制台。
注意:确保C++库的DLL文件位于C#项目的输出目录中,否则在运行时会出现错误。