本文整理自网络,侵删。
使用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版pspterminateprocess驱动源码
Delphi xe5 android获取手机联系人,并用listview显示
Delphi 十六进制字符串转化成字符串输出hextostr strtohex(Delphi版、c#版)
更多相关阅读请进入《Delphi》频道 >>