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);

相关阅读 >>

Delphi源码获取网络图片缓存的地址

Delphi 线程教学第一节:初识多线程

Delphi nativeexcel获取excel所有列

Delphi xe 遍历指定数据库,清空各表记录

Delphi pagecontrol.ttabsheet与drivecombobox.items同步

Delphi cpu窗口的扩展学习

Delphi 基础学习 字符串去掉回车符

Delphi有无生成空格的函数,like vb的space(1)

Delphi d10.x 安卓app开发中创建密钥库文件

Delphi 获取ie中选项卡标题

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...