整数型
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#側のソース