C#使用CLR/C++的DLL间接调用Native C++的DLL
C#使用CLR/C++的DLL間接調用Native C++的DLL
?
開發環境:win 7??VS2010
???
????簡介:C#的exe使用CLR/C++間接調用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();
}
}
}
?
原文地址:http://blog.sina.com.cn/s/blog_a50d2d7401018rxr.html
轉載于:https://www.cnblogs.com/heyunxu/p/6480815.html
總結
以上是生活随笔為你收集整理的C#使用CLR/C++的DLL间接调用Native C++的DLL的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 20145206邹京儒《网络对抗》逆向及
- 下一篇: Robot Framework自动化测试