一、生成dll
1.新建dll工程
- 不用管dllmain.cpp,添加自定义Helper.h和Helper.cpp
3.添加要在外部调用的方法
//头文件
#define DLLEXPORT extern "C" __declspec(dllexport)
DLLEXPORT int _stdcall Addition(int x, int y);
DLLEXPORT int _stdcall create_video_decoder(int codec_id, void **handle);
//源文件
DLLEXPORT int _stdcall Addition(int x, int y)
{
return x + y;
}
DLLEXPORT int _stdcall create_video_decoder(int codec_id, void **handle)
{
//...
}
4.配置x64或x86,编译,得到dll
二、Unity3d中调用
1.在Unity3d工程Assets建立Plugins文件夹,将dll及依赖dll都复制到该文件夹下
2.在代码中引入函数
注意:C#函数的名字可以与C++中的函数可以不一样。但EntryPoint中的名字必须与C++函数名一样。
[DllImport("MyFFmpegHelper")]
public static extern int Addition(int x, int y);
[DllImport("MyFFmpegHelper", EntryPoint = "create_video_decoder", CallingConvention = CallingConvention.Cdecl)]
private static extern int CreateVideoDecoder(FFmpegVideoCodecId videoCodecId, out IntPtr handle);
3.设置x64或x86以及.net版本