首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

超奇怪的有关问题

2012-05-20 
超奇怪的问题下面函数,在独立一个简单的项目,一个FORM,运行完全正常,但把代码原封不动的加入到其它项目后,

超奇怪的问题
下面函数,在独立一个简单的项目,一个FORM,运行完全正常,但把代码原封不动的加入到其它项目后,调用出错。
同一台电脑,同一版本,连传入的数据都是一样的。 出错的代码是 RANGE CHECK ERROR,出错的代码:myint=mlint xor 1
谁能解释得通?
function TForm1.getcardint(cardsn: string): integer;
var mlint: Cardinal;
  myint: integer;
  bi: int64;
begin
  bi := strtoint64(cardsn);
  if bi >= 2147483648 then
  begin

  mlint := bi;
  myint :=mlint XOR 1;
  myint := myint - 1;
  end
  else
  myint := bi;
  result := myint;
end;

[解决办法]
将这个
cardsn: string
修改成:
cardsn: pchar
试试吧
[解决办法]
DELPHI 7 剛試過,沒見到你說的錯誤。下面是測試代碼:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,TestGetCardIntFrm, StdCtrls;

type
TTestForm = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
TestForm: TTestForm;

implementation

{$R *.dfm}

procedure TTestForm.Button1Click(Sender: TObject);
var
i:integer;
begin
i := Form1.getcardint('2147483649');
showmessage(IntToStr(i));
end;
end.

热点排行