Unity中C#调用so文件中返回字符串


Unity中C#调用so文件中返回字符串。

 

1.so源文件

1.1 NaviteCode.h

    #ifndef __NativeCode_H__ #define __NativeCode_H__ #if 0 #define EXPORT_DLL __declspec(dllexport) //导出dll声明 #else #define EXPORT_DLL #endif extern "C" { EXPORT_DLL int MyAddFunc(int _a, int _b); EXPORT_DLL char* GetAppKey(); } #endif 

1.2 NaviteCode.cpp

    #include "NaviteCode.h" #include <cstring> using namespace std; extern "C" { int MyAddFunc(int _a, int _b) { return _a + _b; } // static char* key = "aShLdS$u3p@V-btd5dKmQZdwa"; char buff[255]; char* GetAppKey() { strcpy(buff,"aShLdS$u3p@V-btd5dKmQZdwa"); return buff; //return "aShLdS$u3p@V-btd5dKmQZdwa"; } } 

2.调用方法

将上述生成的so文件放在Plugins-Android下

using System; using System.Runtime.InteropServices; public class Jni { [DllImport("NativeCode")] public static extern IntPtr GetAppKey(); } public class Usage { private string GetAppKey() { IntPtr keyPtr = Jni.GetAppKey(); string appKey = Marshal.PtrToStringAnsi(keyPtr); Debug.Log("Login result:Get appKey " + appKey); return appKey; } } 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM