Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   C# Probleme mit .NET Framework 2.0 x64 (https://www.delphipraxis.net/96926-probleme-mit-net-framework-2-0-x64.html)

Phoenix 1. Aug 2007 19:37


Probleme mit .NET Framework 2.0 x64
 
Hi,

seltsames Phänomen: Sowohl Andreas Flucke AFDLite als auch Lutz Roeders Resourcer funktionieren beide nicht auf meinem System (Windows XP Prof. x64 mit dem .NET Framework 2.0 x64).

Andere .NET 2.0 Programme wie z.B. EveMon oder Paint.NET3 oder auch eigene ASP.NET 2.0 Anwendungen etc. laufen einwandfrei.

Die jeweiligen Versionen von ADFLite und Resourcer für das .NET Framework 1.1 laufen auf meinem Framework 1.1 x64 ohne Probleme.

Ich bin dann mal hergegangen und habe ein eigenes .NET 2.0 Programm welches ich auf einem anderen x86 Rechner gebaut habe probiert: Läuft. (Das angegebene Tool konvertiert ürigens TIFF Bilder die man da reinzieht in JPEGs).

Ich bin also ziemlich sicher, dass es wirklich an den zwei Tools liegt und nicht an meinem System. Hat jemand ein x64 System mit der .NET Runtime 2.0 (oder 3.0) für x64 und könnte ADFLite2 für .NET 2.0 und den Resourcer für 2.0 mal bei sich probieren?

Noch ein bisschen mehr Infos:

Ich habe - um eine korrupte .NET Framework installation auszuschliessen ALLES was .NET war (also Framwork 3.0 Runtime, 2.0 SDK, 2.0 Runtime, 1.1 SDK, 1.1 Runtime vollständig deinstalliert und danach neu installiert. -> Gleiches Problem.

Resourcer schmiert ab mit der Meldung
Zitat:

Zitat von Fehler
Diese Anwendung konnte nicht gestartet werden, weil die Anwendungskonfiguration nicht ordnungsgemäß ist. Zur Problembehebung sollten Sie die Anwendung neu installieren.

Das der 'installer' ein .zip File ist habe ich also nochmal frisch runtergeladen und entpackt. Gleiches Problem.

Beim start von ADFLite behauptet Windows, die Anwendung hätte ein Problem verursacht und müsste geschlossen werden. Beim Versuch reinzudebuggen bin ich zumindest mal darauf gestossen, dass eine Assert.EAssertionFailed geschmissen wird.
Und zwar bei DccDll.__Global.DccDll_Initialize() welches von DMainFrm.TMainForm.Main(String[] args) aufgerufen wird. Wie gesagt: Die 1.1er Version hat das Problem nicht.

Ein bisschen Support wär ganz nice :)

Elvis 1. Aug 2007 19:47

Re: Probleme mit .NET Framework 2.0 x64
 
Zu ADFLite kannst du Andreas sicher in Chrome.Public anhauen.
EAssertionFailed riecht ganz klar nach Delphi, wobei Andreas auch in .Net diese eingestaubten Konventionen beizubehalten scheint.
WENN es Delphi ist, dann ist es in seinem Falle ganz sicher nicht Delphi.Net (warum auch, als Chrome user ;) ).
Native Delphi hat nunmal das Riesenproblem, dass es nur eine Plattform unterstützt, Windows, und die auch nur zur Hälfte, Win32.
Eine Chrome-.Net exe wird, ohne Einschränkungen in der App.config, automatisch auf 64 Bit skalieren.
Wenn auch nur ein einziges bisschen Delphi32 benutzt wird, wird es dir mit einer bitterbösen, nichtssagenden Meldung ins Gesicht springen.

Ich habe jetzt nicht im Kopf was man in die App.config setzen muss um 32 Bit zu erzwingen, aber das solltest du schnell im MSDN finden können.
Ich kann nur raten, aber das wäre mein erster Versuch...

Phoenix 1. Aug 2007 20:00

Re: Probleme mit .NET Framework 2.0 x64
 
DccDll_Initialize sieht sehr nach "Ich suche die Delphi Compiler Dll von Borland und initialisiere diese" aus. Dort knallt er dann wohl auch raus. Aber soweit ich das sehe ist der Code der 1.1 und der 2.0er Version identisch (Reflector sei dank). Dann müsste die dll-Initialisierung aber auch in der 1.1er schief gehen.

Elvis 1. Aug 2007 20:05

Re: Probleme mit .NET Framework 2.0 x64
 
Zitat:

Zitat von Phoenix
DccDll_Initialize sieht sehr nach "Ich suche die Delphi Compiler Dll von Borland und initialisiere diese" aus. Dort knallt er dann wohl auch raus. Aber soweit ich das sehe ist der Code der 1.1 und der 2.0er Version identisch (Reflector sei dank). Dann müsste die dll-Initialisierung aber auch in der 1.1er schief gehen.

Die 1.1 läuft unter Win64 mit 64bit?
Das ist in Chrome für 1.1 ein Switch, der standardmäßig aus war, wenn ich mich recht entsinne. (1.1 ist schon eine WEILE her)
Die 32Bit DLL des Delphi compilers zu laden wird komplett in die Hose gehen mit einem 64Bit-Prozess.
Hast du nach dem Switch für die App.config gesucht? Wenn ja: Gates? Wenn nein: Mönsch...

Phoenix 1. Aug 2007 20:07

Re: Probleme mit .NET Framework 2.0 x64
 
Lösung:

Nix app.config. Aber
Code:
C:\>corflags.exe Assemblyname /32BIT+
hilft.

Sowohl bei Resourcer als auch bei ADFLite. :thumb:

Edit Nachtrag: Dann sollten sowohl Lutz als auch Andreas nicht AnyCPU sondern x86 als Build-Target einsetzen. Dann muss der User das nämlich nicht runterforcen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:33 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz