Benutzer mit den meisten Antworten
Programm läuft nicht unter 64 Bit OS

Frage
-
Hallo,
mein aktuelles Programm läuft soweit ganz gut. Nun hatte ich heute die Möglichkeit das mal auf Windows 7 64 Bit auszuprobieren. Da lief es aber nicht. Wie bekomme ich das hin?
Liebe Grüße Stefan- Verschoben Robert Breitenhofer Samstag, 18. September 2010 16:20 Visual Basic Express (aus:Visual Basic (ab Version 2002 / .NET))
Antworten
-
Stefan,
vorher muss evtl deine Express Edition noch 'getuned' werden:
Aktivieren von erweiterten Buildkonfigurationen
http://msdn.microsoft.com/de-de/library/ms165414.aspx
- Als Antwort markiert Giftzwockel Samstag, 18. September 2010 14:20
-
Hallo Stefan
Eine Fehlerbeschreibung wie "Da lief es aber nicht" ist von einem Programmierer inakzeptabel.
Als erster Schnelltest könnte man die Projekt-Einstellungen fix auf 32-Bit zwingen, also 'x86' unter:
http://msdn.microsoft.com/de-de/library/5b4eyb0k.aspx
Wenn es damit läuft, dann besteht irgendwo eine Plattform-Abhängigkeit, zB wegen DllImport/ComInterop oder anderen (Fremd-)Bibliotheken, die auf 32-Bit ausgelegt sind.- Als Antwort markiert Giftzwockel Samstag, 18. September 2010 14:20
-
Hallo Stefan,
Tatsächlich, in der englischen Version (Updated: September 2009) kann man es schon bei der ersten Notiz lesen: „The Visual Studio Express Editions, such as Visual C# Express Edition, do not support optimization for a specific CPU type. This is supported only in the full Visual Studio product.“ (Quelle: http://msdn.microsoft.com/en-us/library/5b4eyb0k(VS.90).aspx)
In der Deutsche Lokalisierung desselben Artikels steht nicht diese Notiz (wurde ja in November 2007 Letzt Aktualisiert).
Versuch bitte noch auch den folgenden Vorschlag:
Changing the target cpu in VB express 2008
Bin auch hartnäckig rund um dieses Problem deshalb bin ich noch nicht zu Bett gegangen …J
Grüße,
Robert
- Als Antwort markiert Giftzwockel Samstag, 18. September 2010 14:20
-
Hallo Stefan,
Nur gibt es, ungeachtet dessen, dass es die Einstellung geben muß, diese scheinbar nicht für mich L.
Oder ich irre in den falschen Menüs rum.
Ja, Du irrst in den falschen Menüs rum. Nachdem Du die erweiterte Build-Konfiguration aktiviert hast, findest Du im Menü "Erstellen" den Menüpunkt "Konfigurations-Manager". Dort kannst Du unter Plattform neue Projektplattformen anlegen. In der vbproj Projektdatei musst Du dazu nicht herumfuhrwerken. Das würde ich auch keinem empfehlen, wenn er sich nicht auskennt.
Ich würde es sehr begrüßen, wenn Du als Anwender der Express Edition für zukünftige Fragen auch das passende Forum für Visual Basic Express nutzt. Das spart die ein oder andere Rückfrage.
Thorsten Dörfler
Microsoft MVP Visual Basic
vb-faq.de- Als Antwort markiert Giftzwockel Samstag, 18. September 2010 14:20
Alle Antworten
-
Hallo Stefan
Eine Fehlerbeschreibung wie "Da lief es aber nicht" ist von einem Programmierer inakzeptabel.
Als erster Schnelltest könnte man die Projekt-Einstellungen fix auf 32-Bit zwingen, also 'x86' unter:
http://msdn.microsoft.com/de-de/library/5b4eyb0k.aspx
Wenn es damit läuft, dann besteht irgendwo eine Plattform-Abhängigkeit, zB wegen DllImport/ComInterop oder anderen (Fremd-)Bibliotheken, die auf 32-Bit ausgelegt sind.- Als Antwort markiert Giftzwockel Samstag, 18. September 2010 14:20
-
Hallo Thomas,
zu viel des Lobes mit dem Programmierer. Ich versuche mich daran, würde mich aber nie als solchen bezeichnen oder mit Programmierern auf eine Stufe stellen. Aber egal, ich habe mich wohl wirklich sehr mager ausgedrückt.
Also der SplashScreen wird noch gezeigt. Da ich u.A. noch mit einer Ini-Datei arbeite wird diese scheinbar schon nicht mehr eingelesen, denn Form1 wird schon nicht mehr dargestellt.
Die Fehlermeldung habe ich leider nicht parat. Ich bin mal deinem Link gefolgt und scheitere an Punkt 4.
-
Wählen Sie im Projektmappen-Explorer ein Projekt aus, und klicken Sie im Menü Projekt auf Eigenschaften.
-
Klicken Sie auf die Registerkarte Kompilieren.
-
Klicken Sie auf die Schaltfläche Erweiterte Kompilierungsoptionen, um das Dialogfeld Erweiterte Compilereinstellungen zu öffnen.
-
Wählen Sie einen CPU-Typ in der Liste Ziel-CPU aus.Die Optionen lauten AnyCPU (Standard), x86, x64 und Itanium.Klicken Sie auf OK.
denn ich finde dort keine Möglichkeit einen CPU-Typ auszuwählen. Ich arbeite mit VB 2008.
Der Hinweis, den ich von Window 7 Home Premium (gibt es das?) bekomme ist nur, dass die Anwendung nicht gestartet werden könne und das Windows versuche, das zu reaprieren.Option Strict Off
Option Explicit On
Imports System
Imports System.Text
Imports System.IO
Imports System.Runtime.InteropServices
Imports System.Threading
Imports System.Net
Imports System.Net.Mail
Imports System.Net.Mail.SmtpClient
Imports System.Net.Mail.Attachment
Imports Microsoft.Win32
Gibt es so etwas wie:
Imports Microsoft.Win64 oder
Imports Microsoft.x86
Liebe Grüße Stefan -
-
Stefan,
vorher muss evtl deine Express Edition noch 'getuned' werden:
Aktivieren von erweiterten Buildkonfigurationen
http://msdn.microsoft.com/de-de/library/ms165414.aspx
- Als Antwort markiert Giftzwockel Samstag, 18. September 2010 14:20
-
Hallo Stefan,
Also der SplashScreen wird noch gezeigt. Da ich u.A. noch
mit einer Ini-Datei arbeite wird diese scheinbar schon nicht
mehr eingelesen, denn Form1 wird schon nicht mehr dargestellt.Also gibt es offenbar bis dahin irgendwelchen Code, der nur
unter einem 32-Bit System ablauffähig ist, resp. Code, der
eine 32-Bit DLL, oder sonstige 32-Bit Abhängigkeiten aufruft.
Die Fehlermeldung habe ich leider nicht parat.Das wäre aber der einzig sinnvolle Hebel, um an den
aufgetretenen Fehler zu kommen.Ich bin mal deinem Link gefolgt und scheitere an Punkt 4.
1.
Wählen Sie im*Projektmappen-Explorer* ein Projekt aus,
und klicken Sie im Menü*Projekt* auf *Eigenschaften*.
2.
Klicken Sie auf die Registerkarte*Kompilieren*.
3.
Klicken Sie auf die Schaltfläche*Erweiterte Kompilierungsoptionen*,
um das Dialogfeld*Erweiterte Compilereinstellungen* zu öffnen.
4.
Wählen Sie einen CPU-Typ in der Liste*Ziel-CPU* aus.Die
Optionen lauten*AnyCPU* (Standard), *x86*,*x64* und *Itanium*.
Klicken Sie auf*OK*.
denn ich finde dort keine Möglichkeit einen CPU-Typ auszuwählen.Solltest Du aber, wenn Du nicht mit einer Express-Edition von VB.net
arbeitest.
Im Fenster "Erweiterte Compilereinstellungen" sind in der zweiten
ComboBox von unten die möglichen CPU Varianten zur Auswahl
aufgelistet.Ich arbeite mit VB 2008.
Welches VB2008?
Express, Professional, Team System usw.?Der Hinweis, den ich von Window 7 Home Premium (gibt es das?)
bekomme ist nur, dass die Anwendung nicht gestartet werden könne
und das Windows versuche, das zu reaprieren.
OptionStrict OffWarum schaltest Du Option Strict aus?
Das solltest Du besser einschalten.Welche Verweise sind im Projektexplorer unter Verweise aufgeführt?
Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tipps u. Beispielprogrammen) -
Hallo Thomas,
das war schon mal der erste Punkt. Tuning erfolgreich verlaufen. Jetzt habe ich tatsächlich auch die Aufklappliste mit der Beschriftung "Plattform". Vorher war die nicht zu sehen, weswegen den zweite Auklappliste von der hier die Rede war, eine völlig andere Einstellungs behandelte.
Danke.
Liebe Grüße Stefan -
Hallo Peter,
sorry, ich habe Visual Basic 2008 Express.
Im Fenster “Erweiterete Compilereinstellungen habe ich von oben nach unten folgende Controls:
Links oben:
Checkbox „Überprüfungen auf Ganzzahlüberlauf entfernen“
Rechts daneben:
Checkbox „Optimirungen aktivieren“Darunter inaktive TextBox:
DLL-Basisadresse &H11000000
Darunter Aufklapplistenfeld:
Debuginfo generieren Ausgewählt = NoneUnter Kompilierungskonstanen sind:
Checkbox: DEBUG-Konstante Definieren nicht ausgewählt
Rechts daneben Trace-Konstante definieren = ausgewählt
Benutzerdefinierte Konstante:
Win32 = True
Beispiel: Name1 =“Wert1“, Name2 =“Wert2“, Name3 =“Wert3“
Serialisierungsassemblys generieren
Automatisch
Zielframework (alle Konfigurationen):
.Net Framework 3.5
Darunter Checkbox „Reine Client-Frameworkteilmenge“ = nicht ausgewählt.
Muss ich noch irgenwo „tunen“?
Das mit Option Strict aus habe ich mal irgenwann als Tipp bekommen, als ich mich wegen einer Fehlermeldung wie dieser erkundigt habe:
Fehler 37 "Option Strict On" lässt Operanden des Typs "Object" für den =-Operator nicht zu. Verwenden Sie den Is-Operator, wenn Sie die Objektidentität testen möchten. J:\Stefan\Privat\Programmieren\Visual Basic\scan4office\Form1.vb 5596 16 Project1
Nachdem mir mein Ratgeber acuh nicht sagen konnte, was ich anders machen soll um solche Fehlermeldungen zu eliminieren, das Programm aber mit Option Strict Off nicht meckert und dennoch läuft, schien mir das akzeptabel.
Liebe Grüße Stefan -
Hallo Stefan,
Muss ich noch irgenwo "tunen"?
Musst Du, aber hast Du inzwischen ja schon wie in
http://msdn.microsoft.com/de-de/library/ms165414.aspx
beschrieben.Das mit Option Strict aus habe ich mal irgenwann als Tipp
bekommen, als ich mich wegen einer Fehlermeldung wie
dieser erkundigt habe:
Fehler 37 "Option Strict On" lässt Operanden des Typs
"Object" für den =-Operator nicht zu. Verwenden Sie den
Is-Operator, wenn Sie die Objektidentität testen möchten.
J:\Stefan\Privat\Programmieren\Visual Basic\scan4office\Form1.vb 5596 16 Project1Wie die Fehlermeldung schon sagt, ist ein Vergleich von
Objektenif Objekt1 = Objekt2 then ...
nicht zulässig, es muss heissen
If Objekt1 is Objekt2 then
' Objekt1 und Objekt2 verweisen auf
' die selbe Instanz des Objektes.
End ifMit
If Objekt1.Equals(Objekt2) then
' Objekt1 und Objekt2 sind gleich
Endkann man zwei Instanzen eines Objekttyps vergleichen.
Nachdem mir mein Ratgeber acuh nicht sagen konnte,
was ich anders machen soll um solche Fehlermeldungen
zu eliminieren, das Programm aber mitOption Strict Off
nicht meckert und dennoch läuft, schien mir das akzeptabel.Option Explicit und Option Strict sollten immer eingeschaltet sein
nur so ist sichergestellt, dass VB.net nicht implizit irgendwelche
Variablen selbst deklariert bzw. unpassende Datentypen implizit
umwandelt und dabei unerwünschte Ergebnisse entstehen.Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tipps u. Beispielprogrammen) -
Hallo Stefan,
Schau Dir mal die folgenden Links an. Vielleicht können sie Dir weiterhelfen.
Debug? Release? Wo ist die Projektmappenkonfiguration?
http://msdn.microsoft.com/de-de/library/8ck8e1y2.aspx
Grüße,
Robert
-
Hallo Stefan,
ok, das glaube ich verstanden zu haben.
Was hast Du verstanden?
Die Sache mit den Objektvergleichen?Bei meiner 64 Bit Anwendung hilft mir das aber nicht weiter?
Was hilft Dir bei welcher 64 Bit Anwendung nicht weiter?
Offenbar hat Deine Anwendung doch irgendwelche 32-Bit-
Abhängigkeiten und deshalb solltest Du sie nicht für "Any CPU"
sondern eben explizit für "X86 CPU" kompilieren. Die
Anwendung läuft dann auch unter Win7 64Bit im 32-Bit-Modus.Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tipps u. Beispielprogrammen) -
Hallo Robert und Peter,
danke für die Links und Tipps. Einen Teil davon hat Thomas ja auch schon geschrieben und ich habe das auch alles beherzigt.
Nur gibt es, ungeachtet dessen, dass es die Einstellung geben muß, diese scheinbar nicht für mich L.
Oder ich irre in den falschen Menüs rum. Um das Problem sichtbar zu machen habe ich das unter http://www.giftzwockel.de/VB64Bit.htm mal mit Screenshots dargestellt.
Im ersten ist hoffentlich ersichtlich, dass unter Platform nur Aktiv (Any CPU) in der Liste steht.
Ebenfalls der Erste zeigt, dass ich wie beschrieben über den Button „Erweiterte Kompilierungsoptionen“ gehe (roter Rahmen).
Der Zweite zeigt, dass ich hoffentlich im richtigen Dialog bin. Nur dort gibt es nirgends ein Auswahllistenfeld in dem ich den CPU-Typ auswählen kann.
Sorry, dass ich so hartnäckig oder unbeholfen bin.
Liebe Grüße Stefan -
Hallo Stefan,
Tatsächlich, in der englischen Version (Updated: September 2009) kann man es schon bei der ersten Notiz lesen: „The Visual Studio Express Editions, such as Visual C# Express Edition, do not support optimization for a specific CPU type. This is supported only in the full Visual Studio product.“ (Quelle: http://msdn.microsoft.com/en-us/library/5b4eyb0k(VS.90).aspx)
In der Deutsche Lokalisierung desselben Artikels steht nicht diese Notiz (wurde ja in November 2007 Letzt Aktualisiert).
Versuch bitte noch auch den folgenden Vorschlag:
Changing the target cpu in VB express 2008
Bin auch hartnäckig rund um dieses Problem deshalb bin ich noch nicht zu Bett gegangen …J
Grüße,
Robert
- Als Antwort markiert Giftzwockel Samstag, 18. September 2010 14:20
-
Hallo Stefan,
Nur gibt es, ungeachtet dessen, dass es die Einstellung geben muß, diese scheinbar nicht für mich L.
Oder ich irre in den falschen Menüs rum.
Ja, Du irrst in den falschen Menüs rum. Nachdem Du die erweiterte Build-Konfiguration aktiviert hast, findest Du im Menü "Erstellen" den Menüpunkt "Konfigurations-Manager". Dort kannst Du unter Plattform neue Projektplattformen anlegen. In der vbproj Projektdatei musst Du dazu nicht herumfuhrwerken. Das würde ich auch keinem empfehlen, wenn er sich nicht auskennt.
Ich würde es sehr begrüßen, wenn Du als Anwender der Express Edition für zukünftige Fragen auch das passende Forum für Visual Basic Express nutzt. Das spart die ein oder andere Rückfrage.
Thorsten Dörfler
Microsoft MVP Visual Basic
vb-faq.de- Als Antwort markiert Giftzwockel Samstag, 18. September 2010 14:20
-
Hallo Robert,
die Änderungen habe ich vorgenommen. Die Menüs selbst haben sich dadurch nicht geändert. Vermutlich liegt das wohl daran das ich VisualBasic Express verwende wie Thomas feststellt. Das habe ich erst auch Nachfrage am Dienstag, 14. September 2010 17:38 Peter beantwortet.
Ich werde das vielleicht besser in die Signatur übernehmen um den Helfern nicht unnötige Fallstricke zu legen. An dieser Stelle bitte ich alle, die sich so intensiv mit meinem Problem befasst haben hierfür um Entschuldigung.
Der Hinweis von Thorsten hat mich wohl auf die richtige Spur gebracht. Ich bekomme da noch eine Fehlermeldung, mit der ich mich aber erts mal um Rahmen eines Miniprogramm und nicht bei meinem aktuellen Projekt befassen werde (auch wenn ich Sicherungskopien habe).
Liebe Grüße Stefan -
Hallo Thorsten,
bitte entschuldige, wenn ich hier ins falsche Forum gerutscht bin und danke für deine Antwort.
Ich habe jetzt meine Signatur geändert damit jeder gleich weiß, dass ich Visual Basic 2008 Express verwende.
Ohne die Sache zu beschönigen hat das natürlich auch andere Helfer interessiert und ging irgendwo aus dem Verlauf hervor.
Dennoch will ich versuchen, es künftig besser zu machen.
Liebe Grüße Stefan ----------------------------------------- Ich verwende Visual Basic 2008 Express