Unity3D(C#)和c++ dll交互问题

本文介绍了在Unity3D中使用C#调用C++导出的C接口进行交互的方法,涉及字符串转换、回调函数及编码问题。在Windows下,需注意__declspec(dllexport)和__stdcall调用约定;对于字符串,由于Mono使用UTF-8编码,需要在C++端处理。同时,文章提供了UTF-8编码的规则说明,并提醒在不同平台上可能需要的变通措施。
摘要由CSDN通过智能技术生成

C#和C++的交互有多种方法,这里主要说下C#和C接口交互的问题。

C#和C++通过类直接交互的方式,可以参考https://msdn.microsoft.com/en-us/library/ms235281.aspx


首先假如我们有TestC.dll(ios下是.a,Android下是.so),该dll由c++编写,并导出了__declspec(dllexport) bool Initialize(int GID, int ZID, long UID, const char* clientName, const char* clientVer, void (__stdcall * CB)());这样的C接口。注意windows下需要加__declspec(dllexport),android和ios请自己变通。

那么在C#代码中可以如下这样使用该C接口:

using UnityEngine;
using System.Collections;
using AOT;
using System.Runtime.InteropServices;

public class ClassCSharp{ 
	delegate void onIniti
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值