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++ 生成的 dll 關鍵實現部分C#C++
- C# 生成DLL 並 呼叫C#
- c# 呼叫 C++ dll 傳入傳出型別對應說明(轉)C#C++型別
- 【混合程式設計】C/C++呼叫Fortran的DLL程式設計C++
- 【大型軟體開發】開發日誌(五).net框架與C++的融合:CLR——C++呼叫C#的DLL框架C++C#
- c#呼叫C++DLL EntryPointNotFoundException 找不到入口點C#C++Exception
- P/Invoke之C#呼叫動態連結庫DLLC#
- exe呼叫DLL的方式
- 如何建立Electron + Vue3專案, 並呼叫C# dllVueC#
- VS2012生成C的dll並呼叫以及Python呼叫C的DLLPython
- C#呼叫C++動態連結庫C#C++
- NX二次開發-C#使用DllImport呼叫libufun.dll裡的UF函式(反編譯.net.dll)呼叫loop等UF函式C#Import函式編譯OOP
- 使用C++/CLI呼叫C#封裝類庫C++C#封裝
- VS(visual studio) C++ 封裝dll,以及其隱式呼叫與顯式呼叫(靜態動態)C++封裝
- Nodejs如何呼叫Dll模組NodeJS
- php 呼叫dll 裡面的方法PHP
- C#配置程式引用的dll的位置C#
- 實現通過COM元件方式實現java呼叫C#寫的DLL檔案的完整demo元件JavaC#
- JAVA呼叫C語言下的DLL檔案JavaC語言
- VS中呼叫DLL動態庫的方法
- java中呼叫dll檔案的步驟Java
- 使用使用rundll32 呼叫指定dll的方法
- C#呼叫python的方法C#Python
- C# 程式修改dll引用路徑C#
- C#呼叫PythonC#Python
- C#呼叫pydC#
- java呼叫DLL,呼叫北洋印表機列印二維碼標籤Java
- C#呼叫js庫的方法C#JS
- C++ DLL注入工具完整原始碼C++原始碼
- C++呼叫LuaC++
- c與c++的相互呼叫C++
- flutter中呼叫C++的庫FlutterC++
- c# 反射呼叫方法C#反射
- Sql Server 資料庫中呼叫dll檔案的過程SQLServer資料庫
- C++呼叫C介面C++
- Python呼叫C++編寫的方法PythonC++