30.11.2013 20:46 | |
Beiträge: 37 Bewertung: (9) |
Hallo Sebbl, autsch, das hab' ich verbockt. Du hast Win 7 x64 (also die 64 bittige Version von Windows 7)! Ich muß zu meiner Schande gestehen, daß ich nur die 32-bittigen Versionen von Windoxs XP, 7 und 8.1 getestet hatte. Im Anhang gibt's die gefixte Version, die nun auf x86 und x64 Windows funktioniert (getestet mit XP x86, Win7 x86/x64). Die alte Version bitte zunächst deinstallieren und dann die neue Version erneut installieren (siehe Anhang). Jetzt noch etwas mehr Hintergrundinfo: In 64 bittigen Windows-Versionen gibt es den sogenanten WOW-Emulationsmode (Windows on Windows) für 32 bittige Applikationen. (So etwas ähnliches gab's übrigens schon bereits unter NT 4.0 - dort allerdings für 16 Bit Applikationen.) Da .Net Applikationen (TinyLogoTest.exe ist eine .Net Applikation, geschrieben in C#) erst während des Startens vom Jit-Compiler in das tatsächliche Target (also 32 bit oder 64 bit) compiliert werden, gibt es für den Programmierer 3 Möglichkeiten, seine Applikation zu "markieren". Das sind "x86", "x64" und "Any CPU", Während die beiden ersten den Jitcompiler beim Laden der Applikation ganz klar anweisen, entweder für 32 bit (x86) oder 64 bit (x64) zu compilieren, besagt "Any CPU", daß in das Format compiliert werden soll, das der Betriebssystemversion entspricht. D.h. beim Laden in einem 32 bittigen Win 7 x86 wird zu 32 bit compiliert, beim Laden auf einem Win 7 x64 wird zu 64 bit compiliert. Das ist eigentlich auch recht vernünftig... Aber! "Windows 64 bit" besitzt defakto (das ist zwar nicht 100% richtig, dient aber der besseren Veranschaulichung) zwei unterschiedliche "Registry's". Eine für 32 bit Applikationen und eine für 64 bit Applikationen. Mein TinyLogo.ocx (die Steuerbibliothek der Logo) ist ein 32 bit ocx und verwendet damit die 32 bit Registrierung. Wenn eine Applikation (z.B. TinyLogoTest.exe) nun aber auf "Any CPU" gesetzt ist, dann wird sie beim Starten des Programmes zu 64 bit compiliert und schaut in der 64 bittigen Registry nach, wo das OCX liegt. Klar, daß es das OCX, welches in der 32 bittigen Registry registriert wurde, nicht findet. Nachdem ich nun keine Notwendigkeit sah (ja, buht mich alle nur aus :-)), diesen Umstand im Programm abzufangen, schmiert das Programm unter allen 64 bit Windows-Versionen ab. Das hab' ich nun in der neuen Version geändert. Außerdem hab' ich den Schalter auf "x86" gesetzt. Damit läuft TinyLogoTest.exe im 32-bittigen WOW und findet demnach auch das in der 32-bittigen Registry gespeicherte TinyLogo.ocx. Vielen Dank noch mal für Deinen Screenshot. Ohne diesen wäre ich nie im Leben auf die Problemursache der 64 bit gekommen!!! Ich habe tatsächlich nie unter 64 bit getestet, da ich hier keine Rechner mit 64 bit habe. Ich hoffe nur, nicht allzu viele Leute "verprellt" zu haben, da 64 bit ja heute eher der Standard sind, als 32 bit. Naja, jetzt habe ich mit eine VM mit Win 7 x64 eingerichtet und somit zumindest einen Vertreter der 64 bittigen Welt zum Testen zur Verfügung. An alle: Bitte sendet mir Euer Feedback - ich bin darauf angewiesen, auch wenn's ein negatives ist! Schöne Grüße Schnasseldag DateianhangTinyLogoSetup.zip (115 Downloads) |
Zuletzt bearbeitet von: Schnasseldag am: 30.11.2013 21:03 |
|
Für diesen Beitrag bedanken sich1 Benutzer |
01.12.2013 09:29 | |
Beigetreten: 25.09.2008 Letzter Bes: 15.10.2024 Beiträge: 84 Bewertung: (5) |
Hallo Schnasseldag wie Sebbl schreibt, auch ich habe feldüberschneidungen drinne Grüss gim |
Für diesen Beitrag bedanken sich1 Benutzer |
01.12.2013 20:36 | |
Beiträge: 37 Bewertung: (9) |
Hallo miteinander, das Problem der Überschneidungen ist gelöst (zumindest für jeden, der keinen Windowsrechner mit verstellten Systemmetrics hat - so wie ich ). Im Anhang ist die korrigierte Version. Bei verschiedenen Bildschirmauflösungen einfach das Fenster auf Vollbild setzen oder vergrößern. Es gibt noch eine kleine optische Unschönheit bei den TD-Keys - aber das soll zunächst nicht weiter stören... Was mich jetzt am meisten interessieren würde ist, in welchen Logo-Konfigurationen (Hardwarezusatzmodule, 0BA7-Firmwareversionen...) das Programm funktioniert - oder eben auch nicht funktioniert. - Zum Start einfach die Knöpfe: "Initialize" -> IP eingeben -> "Connect" drücken - Zum Stop die Knöpfe "Disconnect" -> "Uninitialize" drücken oder das Programm beenden. - Autoreconnect hilft, wenn mehr als 100 Byte aus dem VM gelesen werden sollen. Im Fehlerfall bitte einen Screenshot anhängen. Achtung! LSC kann nicht parallel zu TinyLogoTest betrieben werden (dazu müßte zumindest der "Disconnect" Knopf vorher gedrückt werden), da sie die gleiche TCP-Schnittstelle zur Logo verwenden. Andere Programme, welche auf LibNoDave beruhen, könnten hingegen parallel funktionieren (das allerdings ohne Gewähr, da ich kein solches Programm habe). Schöne Grüße Schnasseldag DateianhangTinyLogoSetup.zip (111 Downloads) |
Für diesen Beitrag bedanken sich1 Benutzer |
Folgen Sie uns auf