设置用户级日期格式的警告信息

秋天之落叶 2018-11-16 09:05:22
为了保持系统日期格式的一致性,使用了SendMessageTimeout,编译时出现了如下的警告信息,但不影响正常的运行,也有效果。网上查了一下,没有结果。
请问如何解决?

main.pas(14046,87): warning W1000: W1000 Symbol 'SendMessageTimeout' is deprecated: 'Invalid API definition use other verload'
main.pas(14046,87): warning W1002: W1002 Symbol 'SendMessageTimeout' is specific to a platform
2 Warning(s)

狗狗的翻译
不推荐使用符号'SendMessageTimeout':'无效的API定义使用其他verload'
符号'SendMessageTimeout'特定于平台
...全文
159 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
BlueStorm 2018-11-16
  • 打赏
  • 举报
回复
最后一个参数的类型从数值改为指针
BlueStorm 2018-11-16
  • 打赏
  • 举报
回复

//你使用了下面的函数:
function SendMessageTimeout(hWnd: HWND; Msg: UINT; wParam: WPARAM;
   lParam: LPARAM; fuFlags, uTimeout: UINT; var lpdwResult: DWORD): LRESULT;
  stdcall; platform; overload; deprecated 'Invalid API definition use other overload';

//但编译器希望你使用下面的函数:
function SendMessageTimeout(hWnd: HWND; Msg: UINT; wParam: WPARAM;
  lParam: LPARAM; fuFlags, uTimeout: UINT; lpdwResult: PDWORD_PTR): LRESULT; stdcall; overload; 
秋天之落叶 2018-11-16
  • 打赏
  • 举报
回复
我是先用了 getlocaleinfo 和 setlocaleinfo 修改用户级的日期格式由“-”变为“/”后,再用SendMessageTimeout通知更新的,编译时这种提示。
hongss 2018-11-16
  • 打赏
  • 举报
回复
主要应该就是系统日期分隔符不同吧

可以自己取得系统日期分隔符,而后在自己的软件里进行匹配,转换成自己需要的日期格式。

从而达到不修改系统设置,也能让自己的软件无碍运行的效果~~~
秋天之落叶 2018-11-16
  • 打赏
  • 举报
回复
奇怪的是,系统自己的提示也是lpdwResult: DWORD,而编译器竟然更先进一些,知道用指针,哈哈
秋天之落叶 2018-11-16
  • 打赏
  • 举报
回复
引用 4 楼 BlueStorm 的回复:
最后一个参数的类型从数值改为指针

高手啊,药到病除,哈哈。
多谢。

1,184

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧