Entwickler-Ecke

Sonstiges (Delphi) - Symbol wurde von Linker entfernt


Luncustaf - Mo 26.05.03 16:37
Titel: Symbol wurde von Linker entfernt
Hi,

diese fehlermeldung(topic) bekomme ich wenn ich eine procedure aufrufen will


Delphi-Quelltext
1:
ReadWriteDb.DeleteAll(OldestStart[i].Name, OldestStart[i].Datum);                    


so rufe ich die procedure auf hier ist der name auch noch vorhanden.

wird in die procedure gesprungen


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
procedure TReadWriteDB.DeleteAll(Name, OldestStartDate: string);
begin
  with alu.openq do
  begin
    active := false;
    sql.clear;
    sql.add('DELETE * FROM OPCLD WHERE CAL_ID = "'+UpperCase(Name)+'" AND DATESPEC > "'+OldestStartDate+'"');
    active := true;
    first;
    while not eof do
    begin
      execSql;
    end;  
  end;//with
end;


ist der name weg - wenn ich mit dem mauszeiger auf die variable gehe dann erscheint die meldung aus dem topic.

was ist das? ich hatte das problem noch nie?

gr€€tz


AndyB - Mo 26.05.03 19:00

Du schreibst hier vom Debugger bzw. dem Debugging-Prozess, oder?

Zum Debuggen eines Programmes sollte die Code-Optimierung ausgeschaltet werden, da der Compiler ansonsten einige Variablen in Register auslagert und der Debugger somit keinen Zugriff mehr auf diese hat.


Luncustaf - Mo 26.05.03 19:21

sers,

und wie und wo mache ich das?

es geht auch nichts wenn ic hdas programm einfach laufen lasse.

gr€€tz


AndyB - Mo 26.05.03 19:51

Luncustaf hat folgendes geschrieben:
und wie und wo mache ich das?

Menü Project/Optionen/Compiler
[ ] Code-Optimierung


Zitat:
es geht auch nichts wenn ic hdas programm einfach laufen lasse.

Dann sowieso nicht. Der Compiler ist nun mal so schlau, dass er die Variablen in die CPU Register auslagert. Zudem werden die ersten 3 Parameter sowieso in EAX, EDX und ECX übergeben und nicht auf den Stack gelegt. (EAX ist bei Methoden immer der versteckte Parameter Self)