unity调用c++ dll
unity c#中方法
[DllImport("MdDll")]
private static extern int add(int x, int y);
[DllImport("MdDll")]
private static extern string getContents(string inputfilepath);
c++ 中方法
MdDll.h
#ifndef _Md_DLL_H_
#define _Md_DLL_H_
#endif
#include <iostream>
#if defined (EXPORTBUILD)
# define _DLLExport __declspec (dllexport)
# else
# define _DLLExport __declspec (dllimport)
#endif
extern "C" int _DLLExport add(int x,int y);
extern"C" _DLLExport char* getContents(const char* inputfilepath);
// class MdDll
_DLLExport class MdDll
{
public:
MdDll(void);
~MdDll(void);
};
MdDll.cpp
#define EXPORTBUILD
#include "MdDll.h"
using namespace std;
MdDll::MdDll(void)
{
}
MdDll::~MdDll(void)
{
}
int add(int x,int y)
{
return x+y;
}
//获取内容
char* getContents(const char* inputfilepath)
{
if (inputfilepath == NULL)
return NULL;
//将const char* 转为char*
char* input = (char*)malloc(strlen(inputfilepath) + 1);
strcpy(input, inputfilepath);
//char* 可以直接赋值string
string filepath = input;
//string 转为const char
const char *p = filepath .c_str();
//将const char* 转为char*
char* res = (char*)malloc(strlen(p) + 1);
strcpy(res, p);
return res;
}