![]() |
Delphi-Version: 7
Nicht abgeschlossene bedingte Direktive
Hallo!
Mein D7-Compiler gibt mir grad ein bisschen Rätsel auf. Hier erstmal der Code:
Delphi-Quellcode:
Beim
function dwVMWareIsPresent: Boolean;
begin Result := False; {$IFDEF CPU386} try asm mov eax, 564D5868h mov dx, 5658h mov ecx, 0000000Ah xor ebx, ebx in eax, dx cmp ebx, 564D5868h jne @@exit mov Result, True @@exit: end; except Result := False; end; {$ENDIF} end;
Delphi-Quellcode:
wirft der Compiler die besagte Meldung als Fehler aus und hält an. Aber auch nur bei einem STRG-F9-Durchlauf. Bei einem darauf folgenden F9 compiliert er sauber durch. Wo ist da jetzt der Denkfehler? Die übliche Medizin, also erstmal alle DCUs löschen und komplett neu erzeugen lassen hilft nicht.
{$IFDEF CPU386}
Grüße Cody |
AW: Nicht abgeschlossene bedingte Direktive
Also ich bin der Meinung, daß, wenn diese function nicht im Hauptprogramm (dpr) steht, bei F9 = run keine Quellcode-Änderungen der Units berücksichtigt werden - also die letzte Änderung garnicht berücksichtigt wird - deshalb bei F09 = run kein Meckern.
Zum anderen wird der Fehler oberhalb der angemeckerten Stelle sein und erst beim erneuten {$IFDEF CPU386} wird gemeckert, weil oben noch nicht abgeschlossen wurde. |
AW: Nicht abgeschlossene bedingte Direktive
Zitat:
|
AW: Nicht abgeschlossene bedingte Direktive
Ich meinte mit "oben", wenn oben schon einmal dieselbe {$IFDEF CPU386} begonnen wurde - was der Compiler meckert, wenn in einer {$IFDEF CPU386} noch eine {$IFDEF CPU386} auftaucht:
{$IFDEF CPU386} // .. {$IFDEF CPU386} // .. {$ENDIF} // .. {$ENDIF} Meckert mein D9 nicht an. Gedankenfehler meinerseits. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz