Autor Beitrag
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Do 07.10.04 16:35 
Hab nen absolut bekloppten Fehler gefunden:

Versucht mal die im Interface von System.pas deklarierte Funktion _RunError oder _RaiseExcept aufzurufen :D

Laut Deklaration müsste dies OHNE weiteres Möglich sein, doch wenn ich mit einem Source-Schnipsel ala:
ausblenden Delphi-Quelltext
1:
System._RaiseExcept;					

oder
ausblenden Delphi-Quelltext
1:
2:
3:
asm
    CALL System._RaiseExcept
end;

versuche, die Funktion aufzurufen, liefert mir Delphi nur ein lapidares:
Der Delphi-Compiler für D5 bis D7 hat folgendes geschrieben:
Unit1.pas(XY): Unbekannter Bezeichner: '_RaiseExcept'

obwohl diese beiden Bezeichner EINDEUTIG im Interface der System.pas (Zeile 688 - Interface!!!) deklariert sind.

Ich hoffe, einer von euch kann sich das erklären.
(Die Frage für die ich das brauch hat bereits einen eigenen Thread
www.delphi-forum.de/viewtopic.php?t=30580 und braucht daher HIER nicht beantwortet zu werden.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
uall@ogc
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: Do 07.10.04 17:34 
kann gelöscht werden


Zuletzt bearbeitet von uall@ogc am Fr 08.10.04 09:51, insgesamt 1-mal bearbeitet
BenBE Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Do 07.10.04 21:30 
@uall@opc: Genau dafür gab es schon den anderen Thread. Das wollte ich HIER nicht wissen.
In diesem Thread wollte ich wissen, WARUM der Delphi-Compiler mir den Aufruf der im Interface-Deklarierten Funktion _RaiseExcept (und anderen mit _* am Anfang) verweigert ...

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
AndyB
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1173
Erhaltene Danke: 14


RAD Studio XE2
BeitragVerfasst: Fr 08.10.04 00:30 
BenBE hat folgendes geschrieben:
In diesem Thread wollte ich wissen, WARUM der Delphi-Compiler mir den Aufruf der im Interface-Deklarierten Funktion _RaiseExcept (und anderen mit _* am Anfang) verweigert ...

Weil es die System unit ist und die ist sozusagen mit dem Compiler verheiratet, also die sogenannte Compiler-Magic.

_________________
Ist Zeit wirklich Geld?
uall@ogc
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: Fr 08.10.04 10:03 
wenn man sich die system unit mal anscheun würde könnte man das sogar nachlesen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
function LoadResString(ResStringRec: PResStringRec): string;

{ Procedures and functions that need compiler magic }

procedure _COS;
BenBE Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Fr 08.10.04 11:26 
Aber selbst, wenn das so wäre müssten die ja laut Pascal Syntax "verfügbar" sein.
Das ist ja das was mich daran wundert ...

Also hat Borland da ein klein wenig an der System.dcu rumgefummelt, dass diese Befehle nicht mehr public sind, OBWOHL diese im Interface stehen ;-) Wenn ja ergibt sich folgende Frage:
Warum deklariert Borland diese Funktions dann public?

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
AndyB
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1173
Erhaltene Danke: 14


RAD Studio XE2
BeitragVerfasst: Fr 08.10.04 12:38 
BenBE hat folgendes geschrieben:
Also hat Borland da ein klein wenig an der System.dcu rumgefummelt

Nein haben sie nicht. Die System unit gehört zum Compiler. Du kannst nicht einfach die System Unit von Delphi 7 in Delphi 6 einbauen, und dann darauf vertrauen, dass das Delphi 6 Programm kompiliert. Wie ich schon schrieb: die ist sozusagen mit dem Compiler verheiratet

_________________
Ist Zeit wirklich Geld?