Unity3d调用C++ dll中的函数

一、生成dll

1.新建dll工程

  1. 不用管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版本

相关推荐
T0uken4 小时前
【QT Quick】C++交互:与QML类型转换
c++·qt·交互
程序猿阿伟4 小时前
《C++音频降噪秘籍:让声音纯净如初》
开发语言·c++·网络协议
Tech_gis5 小时前
C++ 观察者模式
开发语言·c++·观察者模式
꧁༺❀氯ྀൢ躅ྀൢ❀༻꧂5 小时前
算法与程序课程设计——观光铁路
c语言·c++·算法·课程设计·dijkstra 算法·spfa算法
忘梓.5 小时前
C嘎嘎入门篇:类和对象番外(时间类)
c++·算法
bbqz0076 小时前
逆向WeChat(七)
数据库·c++·微信·逆向·protobuf·sqlcipher·破解密钥·解码protobuf·wechatdb
9毫米的幻想6 小时前
【C++】—— 继承(上)
c语言·开发语言·jvm·c++·学习
m0_683790956 小时前
国庆节刷题
c语言·c++
流云枫木6 小时前
C++ STL常用查询手册
开发语言·c++
mljy.6 小时前
C++《string》
c++·学习