c# 导入c++ dll
2016-05-23 14:31
204 查看
1.类的函数的内联实现 #include "stdafx.h" #include "testdll.h" #include <iostream> #include "testdll.h" using namespace std; #ifndef TestDll_H_ #define TestDll_H_ #pragma once #define DLL_EXPORTS #ifdef DLL_EXPORTS //#define DLL_API extern "C" __declspec(dllexport) #define DLL_CLASS __declspec(dllexport) #else /*#define DLL_API extern "C" __declspec(dllimport) */ #define DLL_CLASS __declspec(dllimport) #endif #include <iostream> //DLL_CLASS是关键字不可缺省 class DLL_CLASS MyOGRE1 { public: void MyOGREHello() { std::cout << "Hello MyOGRE_Hello()" <<"NIMEI"<< std::endl; } }; #endif 2.函数的声明与实现分开 .h文件 using namespace std; #ifndef TestDll_H_ #define TestDll_H_ #pragma once #define DLL_EXPORTS #ifdef DLL_EXPORTS //#define DLL_API extern "C" __declspec(dllexport) #define DLL_CLASS __declspec(dllexport) #else /*#define DLL_API extern "C" __declspec(dllimport) */ #define DLL_CLASS __declspec(dllimport) #endif class DLL_CLASS MyOGRE1 { public: void MyOGREHello(); }; #endif cpp文件 #include "stdafx.h" #include "testdll.h" #include <iostream> #include "testdll.h" using namespace std; void MyOGRE1::MyOGREHello() { cout << "66666" << endl; } c#代码 using System; using System.Collections.Generic; using System.Linq; using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication17 { [StructLayout(LayoutKind.Sequential)] public class MyOGRE { //该方式是直接调用C++ DLL内的类的成员函数。 QAEXXZ [DllImport("MyDLL.dll", EntryPoint = "?MyOGREHello@MyOGRE1@@QAEXXZ")] public static extern void MyOGREHello(); } class Program { #region 1 static void Main(string[] args) { MyOGRE.MyOGREHello(); Console.ReadKey(); } #endregion } }
相关文章推荐
- 回文判断(C/C++)
- 关于gsoap工具soapcpp2.exe无法通过头文件生成wsdl接口描述语言文件的原因
- c++怎样调用类的静态方法
- 《21天学通C++》_2 2016.5.23
- POJ 1269 Intersecting Lines(计算几何)
- 设计模式C++实现(6)——建造者模式
- 设计模式C++实现(5)——原型模式、模板方法模式
- 设计模式C++实现(4)——单例模式
- C/C++中的拷贝构造函数和赋值构造函数
- 常用的C语言定义
- 设计模式C++实现(3)——适配器模式
- 设计模式C++实现(2)——策略模式
- C/C++中的浮点数运算
- C语言文件操作详解
- 设计模式C++实现(1)——工厂模式
- C++中string转为int
- C/C++源代码到可执行程序的过程详解
- c++继承总结
- VS2010使用c++、gSOAP创建WebService 图文教程
- C++ new操作符详解