阿修--一直在自我修炼,希望能得到百年道行

湖南微软开发者俱乐部

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

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

posted on 2010-06-07 11:32  阿修  阅读(1662)  评论(5编辑  收藏  举报