处理参数 有时函数并不以你所需的方式返回信息.一个典型的例子是将两个代表鼠标位置的整形(2 byte)数合并为一个4 Byte的数.还有一个例子是判断一个数的某位是否为1.你还可能得到一个代表一个结构地址的Long型数. 合并和分离一个数并不需要过多的描述.你能在我们的网站(www.geocities.com/SiliconValley/Lab/1632/)上找到APIMacro.bas,它包含了你需要的多种函数. 可以用一下方法检查一个数的第N位是否为1: If Value and (2^N) then ... 置1 Value = Value Or 2^N 置0 Value = Value And Not 2^N 如果你想设定或取得预先知道的某位的信息,用1024代替2^10要快的多.因为这样VB无需自己进行计算(VB憎恨 "^" ?). 如果你接收到一个类型的指针,你要做的工作将稍多一点.你可以使用CopyMem函数来取得信息.下面是它的声明: Declare Sub CopyMem Lib "kernel32" Alias "RtlMoveMemory" (pDest As Any, pSource As Any, ByVal ByteLen As Long) 如果你接收到了一个指向RECT 类型的指针并存在Long型变量Addr 中,可以这样处理: Dim Info As Rect Call CopyMem(Info, ByVal Addr, len(Info)) 注意ByVal关键字.现在,如果你想把信息写回,使用: Call CopyMem(ByVal Addr, Info, Len(Info)) 结束语 我希望这份教程能帮助你理解如何控制API函数的威力和如何正确使用它们.但是要小心!就像火,如果你让它失去控制,你就会玩蛋.当然,不要忘了VB是进行简单.安全程序设计的语言,而API函数则正好相反.如果你想得到更多的控制功能,最好转移到VC++ 或者Delphi. 祝你在API探险中好运! |
闂佽 鍋撻柟顖滃椤ユ垿鏌熺€涙ê濮囧┑顕嗘嫹闂佸搫琚崕鍐诧耿閸涙潙缁╅柟顖滃椤ワ拷>>
正在阅读:在VB中使用API函数(子类处理)在VB中使用API函数(子类处理)
2004-02-14 09:34
出处:eNet学院
责任编辑:pjl
键盘也能翻页,试试“← →”键