在delphi2009下我写了下面的代码:
var
lpStr: pAnsiChar;
i,m:Byte;
begin
lpStr:= GetMemory(lpStr, 3);
lpStr[0]:= chr($FF);
lpStr[1]:= chr($AB);
lpStr[2]:= #0;
i:= Byte(lpStr[0]);
k:= Byte(lpStr[1]);
end;
运行之后, 发现i,k都成了63.
查看 ord( chr($FF) )的时候结果又是255;
这是怎么回事呢?
我看了下 超过$79的数转为AnsiChar 再转回来就都变成63了;
在delphi 7下没有这种问题。
谁知道是什么问题吗?
var
lpStr: pAnsiChar;
i,m:Byte;
begin
lpStr:= GetMemory(lpStr, 3);
lpStr[0]:= chr($FF);
lpStr[1]:= chr($AB);
lpStr[2]:= #0;
i:= Byte(lpStr[0]);
k:= Byte(lpStr[1]);
end;
运行之后, 发现i,k都成了63.
查看 ord( chr($FF) )的时候结果又是255;
这是怎么回事呢?
我看了下 超过$79的数转为AnsiChar 再转回来就都变成63了;
在delphi 7下没有这种问题。
谁知道是什么问题吗?
解决方案 »
- 想调用API 错误指向 function GetCurrentNumber: longint; external;
- Borland Delphi 2006 隆重登場
- tdbchart控件横坐标问题 ,非常急,问了好几次没人答?分不够再加
- 过年不回家,找份事情做!报酬面议!
- 非常简单,只是我不能确定。
- 又来了,求邮件收发源码一份,只需要基本功能就行了,不过更详细更好,
- 多线程,Sock程序,线程如何杀掉?
- 关于一个窗体从屏幕中间由小至大的显示..............
- Help~Help~~~ 想问问怎样用DELPHI实现关机,重启?
- 我在DBGrid的某一列的picklist属性中加上字段,使其在运行时具有下拉列表,但我不想允许用户自己输入值,只可选择下拉列表中的值,如何做
- 请专家帮忙?转存导入表的简单问题
- 怎样在窗口的onclose事件中禁止关闭窗口
var
lpStr: pChar;
i,k:Byte;
begin
lpStr:= GetMemory(3);
lpStr[0]:= chr($FF);
lpStr[1]:= chr($AB);
lpStr[2]:= #0; i:= Byte(lpStr[0]);
k:= Byte(lpStr[1]);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
lpStr: pAnsiChar;
i,k:Byte;
begin
lpStr:= GetMemory(3);
lpStr[0]:= Ansichar($FF);
lpStr[1]:= AnsiChar($80);
lpStr[2]:= #0; i:= Byte(lpStr[0]);
k:= Byte(lpStr[1]);
ShowMessage(InttoStr(i));end;
我看到在System单元里面说pAnsiChar是pChar的别名,那它们应该是一样的啊。
谢谢啦,没分可以给,抱歉哦。
lpStr: pAnsiChar;
i,m:Byte;
begin
lpStr:= GetMemory(lpStr, 3);
lpStr[0]:= #$FF;
lpStr[1]:= #$AB;
lpStr[2]:= #0;
i:= Byte(lpStr[0]);
k:= Byte(lpStr[1]);
end;