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

      

  • 相关阅读:
    测试用例练习2
    测试小尝试
    两个栈实现队列 Python实现
    treap Python实现
    AVL树Python实现(使用递推实现添加与删除)
    AVL树Python实现
    跳表(skiplist)Python实现
    红黑树Python实现
    Django Middleware 之 SessionMiddleware
    软件测试——Peer Review(简介)
  • 原文地址:https://www.cnblogs.com/kexb/p/5519868.html
Copyright © 2011-2022 走看看