2
함수가 과부하 된 것으로 간주하여 PascalScript가 올바른 함수 (AddFunction())를 가져 오는 것을 어떻게 확인할 수 있습니까?PascalScript에서 오버로드 된 함수 가져 오기
예를 들어 system.Random을 가져오고 싶습니다. 임의를 호출하는 스크립트를 테스트 할 때
AddFunction(@System.Random, 'function Random: Extended;');
하지만, 난 항상 결과로 NAN를 얻을 다음 EngineCompile 이벤트에서 나는이 추가.
내 테스트 스크립트는
Program Script;
Var
a: Single;
Check: String;
Begin
a := Random;
Check := FloatToStr(a);
ShowMessage(Check);
End.
내가 PascalScript이
임의의 다른 버전을 가져 강한 느낌이있다. 당신은 어떻게 생각하십니까?
다른 이름으로 올바른 버전의 함수 호출을 작성한 후 제대로 작동했습니다. 여기서 흥미로운 점은 일반적인 방법으로 오버로드 된 함수에 대한 프로 시저 포인터를 선언하면 항상 첫 번째 함수가 반환된다는 것입니다 ... 컴파일러가 함수의 다른 버전을 사용하도록하는 또 다른 방법이 있는지 궁금합니다. ? – az01
"다른 이름을 가진 올바른 버전"이 무엇을 의미하는지 모르겠습니다. 'System.Random'은 하나의 이름만을가집니다. 스크립트에서 다른 이름을 사용할 수는 있지만 델파이 내에서'@ System.Random' 표현식이 영향을 미치지 않습니다. –
나는 @ System.Random이 항상 * Random (ARange : Integer)에 대한 포인터를 반환한다는 것을 의미한다 : 정수 *와 다른 주소는 아님. – az01