delphi 开发64位应用程序使用Windows API的注意事项  
官方Delphi 学习QQ群: 682628230(三千人)
频道

delphi 开发64位应用程序使用Windows API的注意事项


使用Windows API的注意事项
使用WPARAM / LPARAM时的注意事项
传递给SendMessage / PostMessage / TControl.Perform的wParam和lParam参数必须强制转换为WPARAM / LPARAM,而不是整数/ LongInt值。

//正确
SendMessage(hWnd,WM_SETTEXT,0,LPARAM(@MyCharArray));
//错误 
SendMessage(hWnd,WM_SETTEXT,0,Integer(@MyCharArray));

关于返回SetWindowLong / GetWindowLong指针和句柄的注意事项 

返回SetwindowLong / GetWindowLong的指针和句柄时,您需要将GWLP_HINSTANCE,GWLP_ID,GWLP_USERDATA,GWLP_HWNDPARENT和GWLP_WNDPROC更改为SetWindowLongPtr / GetwindowLongPtr。传递给SetWindowLongPtr的指针必须是LONG_PTR类型,而不是Integer / LongInt。
//正确
SetWindowLongPtr(hWnd,GWLP_WNDPROC,LONG_PTR(@MyWIndowProc));
//错误
SetWindowLong(hWnd,GWLP_WNDPROC,LongInt(@MyWindowProc));

有关分配指向TMessage.Result的指针的说明
分配给TMessage.Result字段的指针必须强制转换为LRESULT,而不是Integer / LongInt。

//正确
Message.Result:= LRESULT(Self);
//错误
Message.Result := Integer(Self);

推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号

执行时间: 0.036732912063599 seconds