Unity C++ Plugins 导入导出

#ifndef _DLL_H_
#define _DLL_H_//防重复定义

#if BUILDING_DLL //定义为导出DLL 那么需要加上 导出标记
# define DLLIMPORT __declspec (dllexport)
#else            //当是引用DLL 头文件,表明有这个函数时,最好是加上 该函数是导入
# define DLLIMPORT __declspec (dllimport)
#endif /* Not BUILDING_DLL */

//0.所有讨论的这些,都只是win上需要,其他平台 不需要这个标记
//1. 当一个函数在其他dll 中时,有可能直接使用该dll的头文件,所以同一个头文件,可能是用于导出函数,也可能是用于导入DLL 时为了表示有这个函数
//2. 其实,如果函数在其他dll中,那么你使用的这个头文件,声明的函数,__declspec (dllimport)是可选的,不是一定要加上的,加上编译器生成的代码更好
//3. 如果是dLL 导出给其他函数使用的,那么在函数前一定要加上__declspec (dllexport)


DLLIMPORT void HelloWorld (void);


#endif /* _DLL_H_ */

当导出一个函数

__declspec(dllexport) void Function1(void);

当导出一个类

class __declspec(dllexport) CExampleExport : public CObject
{ ... class definition ... };

当需要的函数在Unity中使用,因为需要通过函数名字找到,所有需要这个

extern "C"
{
DLLIMPORT void HelloWorld (void);
}
阅读更多

没有更多推荐了,返回首页