zoukankan      html  css  js  c++  java
  • c# 导入c++ dll

    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
        }
    }
    
      
      
      
    

      

  • 相关阅读:
    CXF入门案例
    计算python内部数据结构时间效率-源代码
    笨办法学习python-ex41源码加自己注释
    python之random模块
    python之模块、类、对象
    购物车代码
    ql的python学习之路-day1
    数组转置(函数指针,回调函数)
    将一句话按单词逆转
    *一个二级指针的练习(输入一个数,输出对应的月份)
  • 原文地址:https://www.cnblogs.com/kexb/p/5519868.html
Copyright © 2011-2022 走看看