c++ 打包dll 给unity调用

一.vs版本 2017新建项目

 

c++ 打包dll 给unity调用_第1张图片

c++ 打包dll 给unity调用_第2张图片

 

二.C++的实例代码


#pragma once

#if defined (EXPORTBUILD)
# define _DLLExport __declspec (dllexport)
# else
# define _DLLExport __declspec (dllimport)
#endif

extern "C"  _DLLExport int __stdcall Add(int a, int b);

_DLLExport class MyTest
{
public:
	MyTest();
	~MyTest();

	int Add(int a, int b);

};

#include "MyTest.h"

#define EXPORTBUILD

int __stdcall Add(int a, int b) {
	return a + b;
}


MyTest::MyTest()
{
}


MyTest::~MyTest()
{
}

int MyTest::Add(int a, int b)
{
	return 0;
}

三.打包生成两个版本的dll

四.unity端把打包出来的dll放到plugin是目录下

c++ 打包dll 给unity调用_第3张图片

c++ 打包dll 给unity调用_第4张图片

using UnityEngine;
using System.Runtime.InteropServices;

public class Test : MonoBehaviour {
    [DllImport("Project1")]
    public static extern int Add(int a,int b);

    private string m_ShowContent  = " hello world !";

    void OnGUI() {
        if (GUI.Button(new Rect(100, 100, 200, 200), "Test")) {
            m_ShowContent = Add(1,2).ToString();
        }

        GUI.Label(new Rect(100, 50, 200, 50), m_ShowContent);
    }
}

c++ 打包dll 给unity调用_第5张图片

 

你可能感兴趣的:(c++学习总结,Unity学习总结)