白公馆到磁器口怎么走:VB6写的小软件,为什么在XP中不能用了?

来源:百度文库 编辑:高校问答 时间:2024/04/29 04:53:15
各位好,我是个新手,平时用VB6写点小软件,自己用用,我的环境是98+VB6,写过一个小软件需要让窗口总在最前面,方法是从这里看的http://www.cowcow.us/wangpi/vb/200505/19762.html
用的是SetWindowPos函数

最近我把系统升级到XP SP1,发现写软件就不能运行了,我在XP中重装了VB6仍然不能运行(VB6中测试时就不能通过),这是为什么,是XP不支付SetWindowPos函数吗?

没错 XP就是不支持SetWindowPos

因为2000以后的系统全部采用了NT内核技术,已经不是98那么简单了,很多API在NT内核里都有不同的名字或者方法。很简单的,98下你可以任意调用关机函数, 在NT内核下 要关机调用的则是别的函数。

所有在编程的时候考虑好对操作系统的支持,使用预编译是比较好的一种方式。

不是的,XP照样可以支持 SetWindowsPOS 函数,我用的是 2003 ,所有的 VB6 程序运行均很正常,从未出现过任何问题,而我的程序中经常调用这些 API 函数比如:

MCISendString、SetWindowPos、GetShortFileName 等等这些函数,至今未见异常,不过 NT 内核的 API 是与 Win9X 有些不同。

因为XP的API函数和98是不太相同的,新的函数可查阅新的MSDN

搞不懂