WinXP 和 Win2000,Win95/98的API声明是不同吗 ?◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎@@@@

Bugs1984 2003-09-02 08:15:06
我们声明一个函数 如"GetWindowText"
在Win9x,Xp下,改函数别名是 Alias "GetWindowTextA" (注意最后那个“A”)
而在2000、NT下,就是Alias "GetWindowTextW" ("A"变为"W")
那么是不是所有后缀为"A"的都是用在9x,XP下,而“W”则都用在2000,NT

我在XP下使用 SystemParametersInfo 这个API (Alias "SystemParametersInfoW")一切正常,但是到了2000的机器上就得不到想要的结果啊!原因是别名后缀"A"和"W"的不同吗?
-------------
保证给分!!!!!!!!!!
...全文
5 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
佛的光辉 2003-09-04
VER_PLATFORM_WIN32s Win32s on Windows 3.1.
VER_PLATFORM_WIN32_WINDOWS Windows 95, Windows 98, or Windows Me.
VER_PLATFORM_WIN32_NT Windows NT, Windows 2000, Windows XP, or Windows Server 2003 family.
回复
James0001 2003-09-03
dwPlatformId
------------
Value Meaning
-----------------------------------
VER_PLATFORM_WIN32s Win32s on Windows 3.1.
VER_PLATFORM_WIN32_WINDOWS Windows 95, Windows 98, or Windows Me.
VER_PLATFORM_WIN32_NT Windows NT, Windows 2000, Windows XP, or Windows Server 2003 family.
回复
James0001 2003-09-03
***A - ANSI
***W - Wide (Unicode)

dwMajorVersion
---------------
Operating System Meaning
----------------------------------------------
Windows 95 4
Windows 98 4
Windows Me 4
Windows NT 3.51 3
Windows NT 4.0 4
Windows 2000 5
Windows XP 5
Windows Server 2003 family 5

dwMinorVersion
--------------
Operating System Meaning
----------------------------------------------
Windows 95 0
Windows 98 10
Windows Me 90
Windows NT 3.51 51
Windows NT 4.0 0
Windows 2000 0
Windows XP 1
Windows Server 2003 family 2
回复
Bugs1984 2003-09-02

我只知道 win 9x/me 不是基于NT技术内核。

而 XP是属于NT类型,还是非NT类啊?

' 检测Windows版本
Const VER_PLATFORM_WIN32s = 0
Const VER_PLATFORM_WIN32_WINDOWS = 1
Const VER_PLATFORM_WIN32_NT = 2
以上三个常数代表哪些操作系统???????????????
回复
david1981 2003-09-02
大多数的API函数在这些系统下是相同的,但是有些API函数在使用不同的系统时会有所不同。
回复
Bugs1984 2003-09-02
Sorry
以上的调试代码有些错误,个位自行请改正再进行调试
目的是要旨到那个操作系统 对应哪个常数。
回复
Bugs1984 2003-09-02
我现在要使用到 SystemParametersInfo 这个API

' 检测Windows版本
Public Const VER_PLATFORM_WIN32s = 0
Public Const VER_PLATFORM_WIN32_WINDOWS = 1
Public Const VER_PLATFORM_WIN32_NT = 2

Public Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128
End Type

'获取版本信息的API函数
Public Declare Function GetVersionEx Lib "kernel32" _
Alias "GetVersionExA" _
(lpVersionInformation As OSVERSIONINFO) As Long

===================================
请问有谁知道
' 检测Windows版本
Const VER_PLATFORM_WIN32s = 0
Const VER_PLATFORM_WIN32_WINDOWS = 1
Const VER_PLATFORM_WIN32_NT = 2

这3个常熟分别代表以下那些操作系统?
(95/98/ME/NT/2000/XP)
由于本人的机器只装了XP(他是VER_PLATFORM_WIN32_NT = 2)
其余的就无法知道了。各位仁兄不妨复制以上代码于标准模块中,再在ForM Load()中加入

sub form load()
'检测当前 Windows版本类型
lpVersionInfo.dwOSVersionInfoSize = Len(lpVersionInfo)
Call GetVersionEx(lpVersionInfo)

If lpVersionInfo.dwPlatformId = Then
msgbox VER_PLATFORM_WIN32_WINDOWS
elseif lpVersionInfo.dwPlatformId =VER_PLATFORM_WIN32_WINDOWS = 1 then
msgbox VER_PLATFORM_WIN32_WINDOWS
else
VER_PLATFORM_WIN32s = 0
endif
msgbox"请复贴!”
end sub

然后调试一下自己的操作系统对应哪个常数。
然后恢复本贴。Thank you
回复
踏平扶桑 2003-09-02
应该不一样吧
回复
minghui000 2003-09-02
本来就是一样的
回复
发帖
API
创建于2007-09-28

1461

社区成员

VB API
申请成为版主
帖子事件
创建了帖子
2003-09-02 08:15
社区公告
暂无公告