UNITY4公升5的乙個小坑

2021-07-24 23:00:42 字數 617 閱讀 2099

【2、公升級 c# dll】

總體來說就是按照提示進行**介面替換,如果**裡有中文,可能會出現一些編碼問題,這時手動修復一下就好。

【3、公升級 c++ dll】

c++ dll在unity4.7的時候是32bit的,需要公升級到64bit,因此需要按照x64的配置重新編譯。

*這裡有個坑點:32bit的pointer(指標)是4bytes,64bit的是8bytes,在一些記憶體對齊的地方,會很坑爹的補上4bytes。

舉例:struct  a

32bit: sizeof(a) = 4 + 4 = 8 bytes

64bit: sizeof(a) = 8 + 4 + (4) = 16 bytes

struct b : a

32bit: sizeof(b) = 4 + 4 + 4 + 4 = 16 bytes

64bit: sizeof(b) = 8 + 4 + (4) + 8 + 4 + (4) = 32 bytes

如果這時有個c#物件定義的是:

struct cs

然後傳遞給c++ dll, 就會因為記憶體對齊的問題而被坑到。

解決方法可以是填充一些佔位用的變數。

struct cs(fixed)

mongodb的乙個小坑

若collection裡有其他的資料,顯示時注意要往query裡新增true,並且需要放在最前面。解釋 下圖是名為test的collection裡面的資料。可以看到上面5條是一樣的資料,第6條是為了測試故意新增進去的。首先,當你執行命令db.getcollection test find 結果如下。...

Mybatis的乙個小坑

以前一直用的ibatis,前陣子才改用的mybatis,對於一些細節不太了解,所以踩了這個坑。廢話不多說,上 下面是出問題的sql語句 insert into g label obj relation his id label obj relation,id label,followed obj c...

sprintf sscanf中的乙個小坑

char buf 32 sprintf buf,s,d test 100 char out 32 int i 0 sscanf buf,s,d out,i 這段 開始以為會正常執行,結果卻是crash。sscanf在解析 s的時候遇到空格 指標符號 n才會停止解析,而這個 s後面的逗號基本上是乙個擺...