zoukankan      html  css  js  c++  java
  • C#如何引用C++的代码

    C++的Cpp文件

    #include <iostream>

    #define MODULEAPI
    #include 
    "tracewrite.h"

    using namespace std;

    void Func1() { cout<<"i am function 1"<<endl; }
    void Func2() { cout<<"i am function 2"<<endl; }
    void Func3() { cout<<"i am function 3"<<endl; }

    对应的头文件:(.h)

    #ifndef _MODULE_
    #define _MODULE_

    #ifndef MODULEAPI
    #define MODULEAPI __declspec(dllexport)
    #else
    #define MODULEAPI __declspec(dllimport)
    #endif

    //头文件

    #ifdef __cplusplus
    extern "C" {
    #endif

    MODULEAPI 
    void Func1();
    MODULEAPI 
    void Func2();
    MODULEAPI 
    void Func3();

    #ifdef MODULEAPI
       }
    #endif


    #endif // _MODULE_

    C#文件来引用上面的C++的方法:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Runtime.InteropServices;

    namespace ConsoleApplication1
    {
        
    class Program
        {
            
    static void Main(string[] args)
            {
                Func1();
            }

            [DllImport(
    "TestProj.dll")]
            
    private static extern void Func1();
        }
    }

    要引用上面的C++代码的C++代码:

    #include "stdafx.h"


    #include 
    "traceWrite.h"

    #pragma comment(lib , "TestProj.lib")

    void main()

    {

        Func1(); 
        Func2();

        
    //...

    }

    其对应的头文件如下:

    #ifndef _MODULE_
    #define _MODULE_

    #ifndef MODULEAPI
    #define MODULEAPI __declspec(dllexport)
    #else
    #define MODULEAPI __declspec(dllimport)
    #endif

    //头文件

    #ifdef __cplusplus
    extern "C" {
    #endif

    MODULEAPI 
    void Func1();
    MODULEAPI 
    void Func2();
    MODULEAPI 
    void Func3();

    #ifdef MODULEAPI
       }
    #endif


    #endif // _MODULE_
    做个快乐的自己。
  • 相关阅读:
    机器学习
    机器学习
    JavaWeb之tomcat安装、配置与使用(一)
    Tomcat安装、配置和部署笔记
    Java配置----JDK开发环境搭建及环境变量配置
    安装SQL2012
    SQLServer 数据库变成单个用户后无法访问问题的解决方法
    临时记录
    SQL Server 动态生成数据库所有表Insert语句
    SQL2000查看表的大小
  • 原文地址:https://www.cnblogs.com/Jessy/p/2077546.html
Copyright © 2011-2022 走看看