整数型
intやshortやlongといった一体何ビットになるのかOS違いなどであやふやになる型を利用するのはやめましょう。
はっきりと、「int32_t」「int16_t」「uint32_t」など「何ビット」か明示し、C#側もそれと一致させることで
x86とx64どちらに切り替わったとしてもビット数が変化してしまうことを事前に防止できます。
ただし、Windows/VC++で考えれば、
C++側は:short=int16_t、int=long=int32_t、long long=int64_tと考えて良いでしょう。
C#側は:short=Int16、int=Int32、long=Int64なのでlongまわりを勘違いしないよう気をつけましょう。
-
C++側のソース
-
C#側のソース