tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
10
ZUGRIFFE
2608
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    speedo77 speedo77 ist offline Mitglied
    Registriert seit
    Feb 2005
    Beiträge
    18
    Hallo,
    ich habe mein MFC Programm in Visual Studio 2008 auf meinem XP Rechner programmiert. Wenn ich die auf dem XP Rechner lauffähige .exe Datei auf einem Vista Rechner ausführe, kommt folgende Fehlermeldung:

    "Diese Anwendung konnte nicht gestartet werden, da die Side-By-Side-Konfiguration ungültig ist. Weiter Informationen finden Sie im Anwendungsereignisprotokoll."

    Ich habe "Microsoft Visual C++ 2008 Redistributable Package(x86) installiert, leider bleibt die Fehlermeldung erhalten.

    Vielen Dank für jede Hilfe! Gruß speedo
    Geändert von speedo77 (30.10.08 um 16:34 Uhr)
     

  2. #2
    SGSSGene SGSSGene ist offline Mitglied Gold
    Registriert seit
    Feb 2008
    Beiträge
    124
    Wenn du kombilierst must du den Release Mode stellen.
     

  3. #3
    Avatar von Endurion
    Endurion Endurion ist offline Mitglied Diamant
    Registriert seit
    Apr 2004
    Beiträge
    2.151
    Hast du SP1 für Visual Studio installiert? Wenn ja, da gibt es extra ein eigenes Redist Package.
     

  4. #4
    speedo77 speedo77 ist offline Mitglied
    Registriert seit
    Feb 2005
    Beiträge
    18
    Ich habe jetzt die Projekteinstellungen auf "Release" gestellt. Nachdem ich dann die Settings(Pfade,...) eingestellt habe ist es kompilierfähig. Montag teste ich das mal auf einem anderen Notebook.

    Jetzt bleiben mir noch 2 Fragen offen:

    - Wieso ist im debug-Modus das Programm nicht auf einem anderen Rechner lauffähig?
    - Und was muss grundsätzlich auf einem neuinstallierten XP oder Vista Rechner installiert sein um eine MFC-Applikation zu starten?
     

  5. #5
    SGSSGene SGSSGene ist offline Mitglied Gold
    Registriert seit
    Feb 2008
    Beiträge
    124
    Läuft das Programm im Debug Modus, sind in der .exe extra nformationen enthalten,um den Verlauf des Programmes zu beobachten und Fehler auf zu spüren. Es ist durchaus möglich im "Debug"-Mode erstellte Dateien auf anderen PC zum laufen zu bringen, Vorraussetzung wär ein VC oder du veränderst die Einstellung für den Debug Mode, ich kann dir leider nicht sagen welche.
    MFC wird von Microsoft für Windows bereit gestellt, entsprechend läuft es nur auf Windows Rechner. Grundsätzlich sollte MFC Applicationen auf allen Windows Versionen funktionieren. Da du sagst das es nur uf XP oder Vista läuft, vermute ich es liegt ein "Unicode" Problem vor. Unicode wird erst ab XP(?) unterstützt, eine Applikation die Unicode fähig wird deswegen nicht unter Win98 laufen, man kann UniCode aber auch "deaktivieren", ich weiß aber nicht iwe.

    mfg
    SGSSGene
     

  6. #6
    Avatar von Endurion
    Endurion Endurion ist offline Mitglied Diamant
    Registriert seit
    Apr 2004
    Beiträge
    2.151
    Das Problem bei Debug ist, dass dabei andere DLL-Dateien angesprochen werden. Diese Debug-DLL-Runtime-Dateien werden nur bei der Entwicklungsumgebung mitinstalliert. D.h. ein normaler User hat diese Dateien nicht.
    Früher konnte man die Debug-DLLs einfach mitliefern, heute geht das nicht mehr so einfach (ist vielleicht auch besser so).

    Unicode gibt es auch unter 95/98/usw., allerdings sind nicht alle Funktionen unterstützt. Auf der NT-Schiene ist es von Haus aus dabei. Und ab XP gibt es die Unterscheidung Gottseisgetrommelt nicht mehr (die 95er-Schiene ist tot).
     

  7. #7
    speedo77 speedo77 ist offline Mitglied
    Registriert seit
    Feb 2005
    Beiträge
    18
    Ich habe nun ein lauffähiges Programm im Release-Modus erstellt:

    - Visual Studio 2008
    - MFC in einer gemeinsam genutzten DLL verwenden
    - Release-Modus
    - Multithreaded-DLL (/MD)

    Mir bleiben aber noch ein 3 Fragen übrig.

    1 - Wo kann ich EDITANDCONTINUE ausschalten?
    1>ltilib7_d.lib(ltiException.obj) : warning LNK4075: /EDITANDCONTINUE wird aufgrund der Angabe von /OPT:ICF ignoriert.

    2 - Wie behebe ich diese Warnmeldung?
    1>LINK : warning LNK4098: Standardbibliothek "MSVCRTD" steht in Konflikt mit anderen Bibliotheken; /NODEFAULTLIB:Bibliothek verwenden.


    3 - Wann benutze ich die Microsoft.VC90.CRT - DLL-Dateien und wann benutze ich die Microsoft.VC90.MFC - DLL-Dateien?
    Weil ich möchte dass das Programm auch auf einem anderen Rechner läuft und dann muss ich ja die bestimmten DLL-Dateien mitliefen?!
     

  8. #8
    Avatar von Endurion
    Endurion Endurion ist offline Mitglied Diamant
    Registriert seit
    Apr 2004
    Beiträge
    2.151
    1)
    Projekt-Eigenschaften -> Konfigurationseigenschaften -> C/C++ -> allgemein -> Debuginformationsformat

    3)
    Microsoft.VC90.CRT, wenn du ein "reines" C/C++-Programm hast, Microsoft.VC90.MFC, wenn du MFC benutzt (was du machst)
     

  9. #9
    speedo77 speedo77 ist offline Mitglied
    Registriert seit
    Feb 2005
    Beiträge
    18
    Danke Dir. Jetzt funktioniert mein Programm auf allen Rechnern, egal ob XP oder Vista.

    Was mich jetzt noch wundert ist, warum ich in meiner Release-MFC Version zu meiner .exe-Datei "Microsoft.VC90.DebugCRT", "Microsoft.VC90.CRT" und "Microsoft.VC90.MFC" kopieren muss und nicht nur die Microsoft.VC90.MFC?

    Datei:
    3D-Laserscanner.exe.intermediate.manifest

    Inhalt:
    ...
    <dependency>
    <dependentAssembly>
    <assemblyIdentity type='win32' name='Microsoft.VC90.CRT' version='9.0.21022.8' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
    </dependentAssembly>
    </dependency>
    <dependency>
    <dependentAssembly>
    <assemblyIdentity type='win32' name='Microsoft.VC90.MFC' version='9.0.21022.8' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
    </dependentAssembly>
    </dependency>
    <dependency>
    <dependentAssembly>
    <assemblyIdentity type='win32' name='Microsoft.VC90.DebugCRT' version='9.0.21022.8' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
    </dependentAssembly>
     

  10. #10
    Avatar von Endurion
    Endurion Endurion ist offline Mitglied Diamant
    Registriert seit
    Apr 2004
    Beiträge
    2.151
    Ich vermute mal, dass die MFC-Runtimes auch auf der Standard-C-Runtime aufsetzen.

    Ich kompiliere bei meinen MFC-Applikationen die Runtimes immer statisch dazu. Dann fällt das ganze blöde Gelumpe beim Verteilen weg.
     

  11. #11
    speedo77 speedo77 ist offline Mitglied
    Registriert seit
    Feb 2005
    Beiträge
    18
    Alles klar. Danke Dir für deine Hilfe!
     

Ähnliche Themen

  1. VB Programm auch unter Vista?
    Von gufi im Forum Visual Basic 6.0
    Antworten: 3
    Letzter Beitrag: 31.08.09, 13:02
  2. vista x86 oder vista x64 vb2008
    Von DerStauner im Forum .NET Windows Forms
    Antworten: 2
    Letzter Beitrag: 21.01.09, 17:11
  3. Vista Icons für VB.NET Programm
    Von benurb im Forum .NET Café
    Antworten: 1
    Letzter Beitrag: 07.07.08, 11:06
  4. Vista x64: Programm Files (x32)
    Von Vatar im Forum Microsoft Windows
    Antworten: 0
    Letzter Beitrag: 18.10.07, 18:17
  5. Programm das in XP und Vista läuft erstellen
    Von Templorials im Forum .NET Café
    Antworten: 2
    Letzter Beitrag: 06.08.07, 13:53