



























C++/CLI简介见上文 C#调用C++ (使用C++/CLI) - 咸鱼翻身? - 博客园 (cnblogs.com)


1 public class NativeCalculate 2 { 3 public int Add(int a, int b) 4 { 5 return a + b; 6 } 7 }


//NativeCSharpWrapper.h #pragma once using namespace System; namespace CSharpWrapper { public ref class NativeCSharpWrapper { public: static int Add(int a, int b); }; }
//NativeCSharpWrapper.cpp #include "pch.h" #include "NativeCSharpWrapper.h" using namespace CSharpWrapper; using namespace CSharpNative; int NativeCSharpWrapper::Add(int a, int b) { int sum = 0; NativeCalculate^ nativeCalculate = gcnew NativeCalculate(); // 创建C#类的实例 sum = nativeCalculate->Add(a, b); // 调用C#方法 return sum; }
创建非托管类调用NativeCSharpWrapper 并提供对外导出
//NativeCalculate.h #pragma once #ifndef NATIVE_CLASS_H #define NATIVE_CLASS_H class __declspec(dllexport) CPlusCalculate { public: static int Add(int a, int b); }; #endif // NATIVE_CLASS_H
// NativeCSharpWrapper.cpp #include "pch.h" #include "NativeCSharpWrapper.h" using namespace CSharpWrapper; using namespace CSharpNative; int NativeCSharpWrapper::Add(int a, int b) { int sum = 0; NativeCalculate^ nativeCalculate = gcnew NativeCalculate(); // 创建C#类的实例 sum = nativeCalculate->Add(a, b); // 调用C#方法 return sum; }




main函数调用C++/CLI项目CSharpWrapper进而调用CSharpNative
#include <iostream> #include "CPlusCalculate.h" int main() { int sum = CPlusCalculate::Add(50, 40); }
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。