ios篇
1.unity導出xcode工程時,buildxx,避免真機調試的錯誤
2.有些framwork的導入需要編寫代碼自動導入,或者 寫pod文件,podfile,切換到相應目錄,pod install
c++篇
1. 所有的庫需要編寫的vs版本一致,否則報錯
2. 運行庫也要一致都是 md
3. 注意包含頭文件
4.注意鏈接器的lib要寫
5.注意鏈接器的地址要對
6.dll導出和lib導出有差異
#ifdef LIBNDDATASDK_EXPORTS
#define NDDATASDK_API extern"C" _declspec( dllexport )
#else
#define NDDATASDK_API extern"C" _declspec(dllimport)
#endif
NDDATASDK_API int CreateDll1New(int a,int b);//返回接口,使用上要注意線程安全
而lib導出:
int CreateDll1New(int a,int b);//返回接口,使用上要注意線程安全
一定不能添加NDDATASDK_API ,否則報錯
7.c++編寫給unity使用的禁忌; 返回值不能是字符串,char*,獲取其它的, 這樣會搞死unity的內存。
正常寫法:
.h文件
#ifdef DLL1_EXPORTS
#define NDDATASDK_API extern"C" _declspec( dllexport )
#else
#define NDDATASDK_API extern"C" _declspec(dllimport)
#endif
NDDATASDK_API void necall(char* str, char* outdata);//返回接口,使用上要注意線程安全
.app文件
void necall(char* str1, char* outdata) {
string str = str1;
mondebug(str);
mondebug(str.data());
const char* output1 = str.data();
strcpy(outdata, output1);
}
c#文件
[DllImport("dll1")]
private static extern void necall(string a,StringBuilder b);
調用方法
StringBuilder b = new StringBuilder();
necall("dsadsdsds", b);
Debug.LogError("########22222###### " +b);
--》c++ 導出給unity的dll時,不要添加宏定義 LIBNDDATASDK_EXPORTS
安卓篇:
1.