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"的不同吗?
-------------
保证给分!!!!!!!!!!
...全文
26 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
佛的光辉 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
  • 打赏
  • 举报
回复
本来就是一样的

1,488

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧