![]() |
exe läuft gar nicht nach Portierung auf RAD2009
Moin,
ich habe ein Programm (erstellt in D6) überarbeitet und möchte es nun mal probieren (erstellt in RAD2009). Der Effekt: es läuft gar nicht erst an. Im OnlineDebugger bekomme ich die Meldung "access violation at 0x00 read of address 0x00". Mehr geht nicht, komme nicht mal in den Bereich Initialization etc. Das CPU-Fenster zeigt ab Adresse 0x00 keine Anweisungen, nur ????. Da das Programm sich auf dem Kundenrechner mit D6 wunderbar compilieren und benutzen lässt, denke ich an irgendwelche Linker-Einstellungen, die ich noch nicht kenne. Gibt es einen 64bit-Linker im Pro-Paket? Ansonsten sind viele Hardwarezugriffe im Programm (Prüfstand). BTW: ich habe die Suche jetzt nicht bemüht, weil die GPRS-Verbindung hier total lahm ist. Grüße, Messie |
Re: exe läuft gar nicht nach Portierung auf RAD2009
Adresse 0 weist auf eine nicht instantiertes Objekt hin ( 0 = Nil)
|
Re: exe läuft gar nicht nach Portierung auf RAD2009
Zitat:
Das Ereignisprotokoll liefert als letzten Eintrag Zitat:
|
Re: exe läuft gar nicht nach Portierung auf RAD2009
Ohne den Source zu kennen, kann man da schlecht helfen
|
Re: exe läuft gar nicht nach Portierung auf RAD2009
.. jetzt kommt ein wilde Vermutung:
Kann es sein, das Du die DLL olePro32.dll einbinden willst, und irgendwas mit Strings machst? Strings D6 <> String D2009 Wie gesagt nur eine Vermutung. Grüße Klaus |
Re: exe läuft gar nicht nach Portierung auf RAD2009
ich glaub OLE und Delphi-Strings verstragen sich eh nicht, also würde ich da eher nicht vermuten, abgesehn das String (AnsiString und UnicodeString) in Delphi bei "nil" sich gleich verhält.
|
Re: exe läuft gar nicht nach Portierung auf RAD2009
Bei OLE würde sicher eher WideString anbieten
|
Re: exe läuft gar nicht nach Portierung auf RAD2009
Zitat:
Delphi-Quellcode:
Ich komme nicht mal bis zum Erstellen des Mutex (da hätte ich jetzt Klaus' Vermutung unterstützt). Die OLE-Links habe ich rausgeworfen, weil die sowieso nicht gebraucht wurden.
program ShiftNow;
uses Forms, Windows, FMain in 'FMain.pas' {Main}, UHWConfig in 'UHWConfig.pas', FAdvantech in 'FAdvantech.pas' {Advantech}, UIO_AI_1715 in 'UIO_AI_1715.pas', UResourceString in 'UResourceString.pas', UIO_AO_1727 in 'UIO_AO_1727.pas', UIO_DIO_1730 in 'UIO_DIO_1730.pas', UMot_APCI8001 in 'UMot_APCI8001.pas', UIO_Thread in 'UIO_Thread.pas', UIO_ADAM in 'UIO_ADAM.pas', FHelp in 'FHelp.pas' {Help}, FMessung in 'FMessung.pas' {Messung}, FManuell in 'FManuell.pas' {Manuell}, UBahnThread in 'UBahnThread.pas', mcug3 in 'mcug3.pas', UIniFile in 'UIniFile.pas', UGlobalClass in 'UGlobalClass.pas', FEingabe in 'FEingabe.pas' {Eingabe: TTntForm}, FFahrSeg in 'FFahrSeg.pas' {FahrSegForm}, FSplash in 'FSplash.pas' {Splash}, UUtils in 'UUtils.pas', FFahrProg in 'FFahrProg.pas' {FahrProgForm}, UStatus in 'UStatus.pas', UIO_Terminal in 'UIO_Terminal.pas', FInfo in 'FInfo.pas' {Info}, UIO_NI_USB_6229 in 'UIO_NI_USB_6229.pas'; {$R *.res} var ProgHandle : THandle; begin //hier komme ich noch hin ProgHandle := CreateMutex(nil, True, 'ShiftNow'); //hier komme ich nicht an if GetLastError <> ERROR_ALREADY_EXISTS then begin Application.Initialize; Application.CreateForm(TMain, Main); Application.CreateForm(TFahrProgForm, FahrProgForm); Application.CreateForm(TInfo, Info); Splash.InitializationDone := true; Application.CreateForm(TAdvantech, Advantech); Application.CreateForm(THelp, Help); Application.CreateForm(TMessung, Messung); Application.CreateForm(TManuell, Manuell); Application.CreateForm(TEingabe, Eingabe); Application.Run; end; CloseHandle(ProgHandle); end. Wie passiert denn noch alles beim Programmstart? Alles was Objekt ist, dürfte ja noch keine Rolle spielen, oder? Grüße, Messie P.S. die Ide hat dann gleich ein paar Bugs offenbart, wie z.B. dass Ctrl+f im CPU-Fenster eine Exception in der IDE auslöst. Wo meldet man das hin? |
Re: exe läuft gar nicht nach Portierung auf RAD2009
Schau dir den Initialization Abschnitt deiner Units an.
|
Re: exe läuft gar nicht nach Portierung auf RAD2009
Zitat:
Deshalb interessiert mich, was sonst noch so beim Start eines Programms passiert. Eine fehlende dll wurde vorher schon angemeckert. Grüße, Messie |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:37 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