在過程中發現兩種方法解決問題:一種是非託管C++所建立的dll函式庫,需要用靜態方法呼叫。這種方法無法在C#的reference中直接引用,而是要用靜態呼叫的方法,其他部落格已經介紹的很詳盡,唯一需要補充的是,C#檔需要先:
using System.Runtime.InteropServices;
之後才可以呼叫[DllImport]方法。
另一種方法是直接使用CLR,產生託管C++dll函式庫。
建立流程
例程如下
C++ dll:
// 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#語言:
##
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(); } } }