开发库常见问题

29 篇文章 0 订阅
3 篇文章 0 订阅

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.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值