假设你有这样的代码:
Result.X := ACustomMemo.Perform(EM_LINEFROMCHAR,-1,0);
Windows API声明“-1”是一个有效值,使其返回活动行.
但是,Delphi将此定义为NaiveUInt并且如果我尝试传递-1则会抱怨.
什么是最干净的解决方案?铸件?
解决方法
将-1值转换为WPARAM是处理此案例的正确方法.
Result.X := ACustomMemo.Perform(EM_LINEFROMCHAR,WPARAM(-1),LPARAM(0));
顺便说一句,WPARAM类型的delphi NativeUint定义是正确的,因为x86上的无符号32位和x64上的无符号64位.