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 onInitializeDelegate();
[DllImport("TestC")]
protected static extern bool Initia

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

被折叠的 条评论
为什么被折叠?



