现在的位置: 首页 > 综合 > 正文

又谈C#与VC++数据类型

2011年11月10日 ⁄ 综合 ⁄ 共 408字 ⁄ 字号 评论关闭

最近在做一些跨语言的开发,需要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类型去声明,几乎就会乱套。

【上篇】
【下篇】

抱歉!评论已关闭.