首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

为什么在VB.net中申明API函数时要把long改为int32?解决办法

2012-01-07 
为什么在VB.net中申明API函数时要把long改为int32?我使用findwindow函数,在VB中如下正确使用PublicDeclare

为什么在VB.net中申明API函数时要把long改为int32?
我使用findwindow函数,
在VB中如下正确使用
Public   Declare   Function   FindWindow   Lib   "user32 "   Alias   "FindWindowA "   (ByVal   lpClassName   As   String,   ByVal   lpWindowName   As   String)   As   Long

但在VB2005中要把long改为int32才可以,不知何故啊?是不是vb中的long相当于VB.net中的int32啊?VB和VB.net中的long有什么区别?


[解决办法]
long在内存占8字节,int32占4字节
[解决办法]
楼上正解
[解决办法]
一直到6.0时代,VB中的Integer都是16位的,Long是32位的;而从.NET开始,VB中的Integer变成32位(Int32),而Long变成64位(Int64),与C系列语言看齐。即过去的Long现在变成Integer了。而我们通常看到的API函数的定义还是6.0时代的,所以如果不进行重新定义的话就会导致堆栈错误。
[解决办法]
类型长度变啦
[解决办法]
在VB.NET中不用As Long了,Integer本身和API中的整数大小是一样的了.

热点排行