C#呼叫 C++的DLL
C#使用CLR/C++的DLL間接呼叫Native C++的DLL
步驟如下:
- 建立一個C#的Console Application工程-->命名“ConsoleApplication1”。
- 建立一個CLR/C++的工程,右擊“ConsoleApplication1”上面的“Solution
'ConsoleApplication1'”-->Add-->NewProject-->CLR-->Class Library -->命名“NetCpp”。
-
建立一個Native C++工程,同上,右擊-->Add --> NewProject -->Win32 -->Win32 Project
-->命名“NativeCpp”-->Next-->選擇"DLL"-->Export symbols.
- 開啟"NativeCpp.h"在其中加入一些成員函式與變數;
#define NATIVECPP_API __declspec(dllexport) // This class is exported from the NativeCpp.dll class NATIVECPP_API CNativeCpp { public: CNativeCpp(void); // TODO: add your methods here. int getA() { return 20; } };
-
在NetCpp工程中引用NativeCpp的DLL;
右擊NetCpp工程-->Properties
- 開啟CLR/C++工程的"NetCpp.h",加入#include "NativeCpp.h"
#include "NativeCpp.h" using namespace System; namespace NetCpp { public ref class Class1 {public: int getB() { CNativeCpp a; return a.getA(); } }; }
-
右擊ConsoleApplication1工程的References-->Add Reference-->Projects-->選擇"NetCpp"
再把Native C++產生的DLL複製到C#工程的bin\\Debug\\目錄下.(若想在修改了NativeC++程式碼後動態的更新Native C++的DLL,需要在C#工程的屬性中設定:PropertiesàBuild EventsàPost-build event command line:寫入命令:copy $(SolutionDir)Debug\NativeCpp.dll $(TargetDir) )
- 開啟ConsoleApplication1工程program.cs。
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { NetCpp.Class1 cl = new NetCpp.Class1(); Console.WriteLine("getA()" + c1.getB().ToString()); Console.Read(); } } }
相關文章
- C#呼叫c++編寫的dllC#C++
- C++呼叫C#的動態庫dllC++C#
- 【C#學習筆記】呼叫C++生成的DLLC#筆記C++
- C# 呼叫 C++ 生成的 dll 關鍵實現部分C#C++
- C#呼叫外部DLLC#
- C#網站呼叫C++非託管dll須知C#網站C++
- C#呼叫C++DLLC#C++
- C#呼叫匯編dllC#
- C# 呼叫dll獲取dll物理路徑的方法C#
- C#呼叫Delphi的dll之詳解C#
- 使用Delphi呼叫C++編寫的DLLC++
- c# 呼叫 C++ dll 傳入傳出型別對應說明(轉)C#C++型別
- VC++ 呼叫 C#生成DLL的兩種方法C++C#
- 【混合程式設計】C/C++呼叫Fortran的DLL程式設計C++
- 【大型軟體開發】開發日誌(五).net框架與C++的融合:CLR——C++呼叫C#的DLL框架C++C#
- 在C#中使用C/C++寫的DLL (轉)C#C++
- C#呼叫DLL實現影像文字識別(OCR)C#
- asp.net網頁中呼叫c#寫的dll檔案ASP.NET網頁C#
- 反射呼叫DLL反射
- c#呼叫C++DLL EntryPointNotFoundException 找不到入口點C#C++Exception
- P/Invoke之C#呼叫動態連結庫DLLC#
- Qt DLL總結【二】-建立及呼叫QT的 DLLQT
- C#呼叫C++動態連結庫C#C++
- VS2012生成C的dll並呼叫以及Python呼叫C的DLLPython
- JNA--Java呼叫DLLJava
- VC動態呼叫DLL
- C# 跨平臺呼叫C++的函式指標C#C++函式指標
- 使用C++/CLI呼叫C#封裝類庫C++C#封裝
- C++編寫DLL的方法C++
- 用C#呼叫C++DLL時的字串指標引數傳遞問題C#字串指標
- NX二次開發-C#使用DllImport呼叫libufun.dll裡的UF函式(反編譯.net.dll)呼叫loop等UF函式C#Import函式編譯OOP
- Nodejs如何呼叫Dll模組NodeJS
- java中呼叫dll檔案的步驟Java
- JAVA呼叫C語言下的DLL檔案JavaC語言
- VS中呼叫DLL動態庫的方法
- C# DLL注入技術C#
- 實現通過COM元件方式實現java呼叫C#寫的DLL檔案的完整demo元件JavaC#
- DLL檔案在Delphi的建立及呼叫 (轉)