发信人: hunter__fox(雁回西楼)
整理人: foxzz(2003-06-22 13:44:30), 站内信件
|
这个函数在VC中的声明里,最后一个参数是使用传址方式.
在VB的声明中,是ByRef方式.
如果在VFP中使用,则是应当在声明里加上"@"符号.
但在实际使用中,使用ByRef方式不能完成,需要改为ByVal(传值)方式.
在VFP中同样需要使用传值方式.
但对于不同的版本,此参数的传递方式是否一成不变,我没有做过尝试,如果使用传值方式无效,在排除消息不正确的因素外,可以尝试改变这个参数的传递方式.
在Windows API函数中,并不是所有的函数都保持了向前兼容.
典型的例子就是Shell_NotifyIcon(添加图标到系统托盘)函数.
其中第二个参数的类型为NOTIFYICONDATA,在Window9x版本与Win2k版本中,这种数据类型的声明并不相同,在VB/VFP/VC中使用时,如果不加修改,程序就不能在Win2k环境下向系统托盘添加图标,因为2k的这种类型在原有基础上添加了几个结构.
对于VFP,一般情况下是不提倡使用API函数.只有在必需的情况下,使用API才是可取的.
原因在于,VFP没有解决关于结构的问题,我们一直在使用字符串作为结构的代用品.构造结构是VFP使用API的一个难点.
在使用API时,大家需要有足够的耐心去调试,而且应当知道,有些API函数在VFP中调用是无法实现的,如,需要将函数作为参数的CallWindowProc这样的API函数.
在对VFP有更多了解后,我们也可以发现,有些事情,我们并不需要使用API,如添加系统托盘图标等.这种情况下,我们就应当首先考虑不使用API.
如果大家在使用API时有什么心得体会,欢迎在这里与大家分享.
---- 作者:hunter__fox【雁回西楼】
来源:网易虚拟社区广州站 VFP版 |
|