要在C#中調用C++庫,您需要使用平臺調用(P/Invoke)技術。這是一個允許托管代碼(如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#項目的輸出目錄中,否則在運行時會出現錯誤。