最近在做一些跨语言的开发,需要C#调用VC++开发的动态链接库,以前对VC++没有太多深入研究,导致这次开发过程遇到了阻碍,下面是从中得到的一些经验。

 

1、Byte vs Char

在C#中Byte就8 bit,Char是16bit(2 Byte)。

而在VC++中是没有Byte的数据类型,char = signed Char = unsigned char = __int8 长度都是1 Byte。而VC++里面的wchar_t(2 Byte)就可以正确对应C#里面Char。

 

 

2、long

在C#中long是8 Byte。

而在VC++中long = unsigned long 是4 Byte,而long long = signed long long = unsigned long long = __int64 长度才是8 Byte。

 

以上两点是做.NET开发人员最容易混淆的VC++类型,如果C#调用VC++一个long的参数,你用C#的long类型去声明,几乎就会乱套。

相关文章:

  • 2022-12-23
  • 2021-08-29
  • 2021-05-28
  • 2021-06-03
  • 2022-12-23
猜你喜欢
  • 2021-11-28
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案