tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
Like Tree1Danke
ERLEDIGT
NEIN
ANTWORTEN
15
ZUGRIFFE
2250
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    pepsi_gx pepsi_gx ist offline Mitglied Gold
    Registriert seit
    Jun 2009
    Beiträge
    127
    Guten Tag,

    ein Programm habe ich in VC++ geschrieben und die kopilierte .exe-Datei funktioniert gut auf meinem PC.

    Aber wenn ich sie auf nem anderen PC teste, kann sie nicht ausgeführt werden mit der Warnung "The system cannot execute the specified program".

    Nach Googeln kann es wahrscheinlich am Fehlen der "Run time Library" von C/C++ liegen. Microsoft bietet eine Visual C++ 2008 Package dafür an.

    Gibts vielleicht noch anderen Weg, die .exe-Datei auf anderem PC ausführen zu lassen?

    PS: WinXP mit SP3 habe ich.

    LG
    Geändert von pepsi_gx (01.10.09 um 16:42 Uhr)
     

  2. #2
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Hi.

    Du könntest die Laufzeitbibliothek statisch mit zum Programm linken.

    Ändere in den Projekteinstellungen bei C/C++ -> Codegenerierung die zu verwendende Laufzeitbibliothek von "Multithreaded-DLL" bzw. "Multithreaded-Debug-DLL" auf "Multithreaded" bzw. "Multithreaded-Debug" für das Release respektive Debug-Target.

    Dann mußt du alles nochmal neu erstellen.

    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  3. #3
    pepsi_gx pepsi_gx ist offline Mitglied Gold
    Registriert seit
    Jun 2009
    Beiträge
    127
    Zitat Zitat von deepthroat Beitrag anzeigen
    Hi.

    Du könntest die Laufzeitbibliothek statisch mit zum Programm linken.

    Ändere in den Projekteinstellungen bei C/C++ -> Codegenerierung die zu verwendende Laufzeitbibliothek von "Multithreaded-DLL" bzw. "Multithreaded-Debug-DLL" auf "Multithreaded" bzw. "Multithreaded-Debug" für das Release respektive Debug-Target.

    Dann mußt du alles nochmal neu erstellen.

    Gruß
    Danke, das habe ich ausprobiert, aber Fehlermeldung:
    Code cpp:
    1
    
    Error   1   Command line error D8016 : '/MTd' and '/clr' command-line options are incompatible
     

  4. #4
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Hi.

    Schreibst du denn ein Programm für die .NET Common Language Runtime?

    Wenn nicht, dann schalte die Common Language Runtime Unterstützung ab (in den Projekteigenschaften unter Allgemein)

    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  5. #5
    pepsi_gx pepsi_gx ist offline Mitglied Gold
    Registriert seit
    Jun 2009
    Beiträge
    127
    Zitat Zitat von deepthroat Beitrag anzeigen
    Hi.

    Schreibst du denn ein Programm für die .NET Common Language Runtime?

    Wenn nicht, dann schalte die Common Language Runtime Unterstützung ab (in den Projekteigenschaften unter Allgemein)

    Gruß
    CLR ist aktiv, und wenn ich sie deaktiviere, kommen Fehlermeldungen:
    Code cpp:
    1
    2
    
    Error   2   error BK1506 : cannot open file '.\Debug\xxx.sbr': No such file or directory    BSCMAKE
    Error   1   fatal error C1189: #error :  Please use the /MD switch for _AFXDLL builds   C:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\include\afxver_.h    81

    Noch ne Idee?
     

  6. #6
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Wenn du ATL nicht verwendest, schalte es ab.

    \edit: wenn du ATL doch verwendest, wähle dort die statische Variante aus.

    Gruß
    Geändert von deepthroat (01.10.09 um 17:57 Uhr)
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  7. #7
    pepsi_gx pepsi_gx ist offline Mitglied Gold
    Registriert seit
    Jun 2009
    Beiträge
    127
    Komisch ist, nach meinem Verständnis sollte eine .exe-Datei plattformunabhängig sein, oder? Aber anscheinend braucht sie trotzdem noch welche DLLs zum Ausführen.

    Eine andere Möglichkeit wäre, daß ich eine .msi Install-Datei aus den nötigen DLLs und
    der .exe-Datei vorbereite. Frage ist, wie?

    Nach Internetrecherche habe ich ein Opensource Tool dafür gefunden. Da die Anleitung eher allgemein scheint, wie soll ich in meiner Situation machen? (Mit DLLs und .exe-Datei)

    http://www.dalun.com/wix/01.09.2005.htm

    Schönen Feiertag noch!
     

  8. #8
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Zitat Zitat von pepsi_gx Beitrag anzeigen
    Komisch ist, nach meinem Verständnis sollte eine .exe-Datei plattformunabhängig sein, oder? Aber anscheinend braucht sie trotzdem noch welche DLLs zum Ausführen.
    Dein Verständnis ist mangelhaft
    Zitat Zitat von pepsi_gx Beitrag anzeigen
    Eine andere Möglichkeit wäre, daß ich eine .msi Install-Datei aus den nötigen DLLs und
    der .exe-Datei vorbereite. Frage ist, wie?
    Indem du ein Setup-Projekt erstellst.

    Und warum erstellst du kein statisch gelinktes Programm wie vorgeschlagen?

    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  9. #9
    pepsi_gx pepsi_gx ist offline Mitglied Gold
    Registriert seit
    Jun 2009
    Beiträge
    127
    Zitat Zitat von deepthroat Beitrag anzeigen
    Dein Verständnis ist mangelhaft
    Sollte ich mich vielleicht schämen?

    Zitat Zitat von deepthroat Beitrag anzeigen
    Indem du ein Setup-Projekt erstellst.
    Meinst du direkt durch VC++? Wenn ja, eine kurze Anleitung wäre mir geholfen.

    Zitat Zitat von deepthroat Beitrag anzeigen
    Und warum erstellst du kein statisch gelinktes Programm wie vorgeschlagen?
    Das will ich auf jeden Fall auch probieren. Daher habe ich die Setup-Datei als "eine andere Möglichkeit" genannt und finde die eher profesionell zu scheinen.
     

  10. #10
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Zitat Zitat von pepsi_gx Beitrag anzeigen
    Meinst du direkt durch VC++? Wenn ja, eine kurze Anleitung wäre mir geholfen.
    http://www.lmgtfy.com/?q=visual+stud...ellen+tutorial
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  11. #11
    pepsi_gx pepsi_gx ist offline Mitglied Gold
    Registriert seit
    Jun 2009
    Beiträge
    127
    Zitat Zitat von deepthroat Beitrag anzeigen
    Wenn du ATL nicht verwendest, schalte es ab.

    \edit: wenn du ATL doch verwendest, wähle dort die statische Variante aus.

    Gruß
    ATL war schon immer down. Und ich hab ausprobiert, nur müssen "/clr", und "/MDd" gewählt sein, sonst Fehler.

    Kann ich in Build-->Configuration Manager--> Active Solution Configuration "Release" wählen? Was ist der Unterschied zwischen "Release" und "Debug"? Vom Namen her klingt es mir schon very NICE. (Sorry, leider kann ich auf deinen Link nicht zugreifen).
     

  12. #12
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Zitat Zitat von pepsi_gx Beitrag anzeigen
    ATL war schon immer down. Und ich hab ausprobiert, nur müssen "/clr", und "/MDd" gewählt sein, sonst Fehler.
    Diese ganze Rumraterei was du nun eingestellt hast und was nicht, bzw. was du überhaupt benutzt bringt doch nichts. Häng am besten mal dein Projekt (vorher bereinigen!) hier an.
    Zitat Zitat von pepsi_gx Beitrag anzeigen
    Kann ich in Build-->Configuration Manager--> Active Solution Configuration "Release" wählen? Was ist der Unterschied zwischen "Release" und "Debug"? Vom Namen her klingt es mir schon very NICE.
    Du kannst jede Konfiguration wählen die es gibt. Release baut eine Release-Version (ohne Debugging Informationen), die optimiert ist. Debug ist eine Konfiguration die ein Programm mit Debug-Informationen erstellt, nicht optimiert und mit zusätzlichen Checks.
    Zitat Zitat von pepsi_gx Beitrag anzeigen
    (Sorry, leider kann ich auf deinen Link nicht zugreifen).
    Warum?
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  13. #13
    pepsi_gx pepsi_gx ist offline Mitglied Gold
    Registriert seit
    Jun 2009
    Beiträge
    127
    Nun weiss ich, wie man ein Setup-Projekt erstellen kann.
    http://support.microsoft.com/kb/837220/en-us

    Aber wenn ich es erstelle, bekomme ich eine Fehlermeldung:
    [cpp]
    Error 4 'urlmon.dll' should be excluded because its source file 'C:\WINNT\system32\urlmon.dll' is under Windows System File Protection.[cpp]

    Wie kann ich damit umgehen?
     

  14. #14
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Zitat Zitat von pepsi_gx Beitrag anzeigen
    Nun weiss ich, wie man ein Setup-Projekt erstellen kann.
    http://support.microsoft.com/kb/837220/en-us

    Aber wenn ich es erstelle, bekomme ich eine Fehlermeldung:
    [cpp]
    Error 4 'urlmon.dll' should be excluded because its source file 'C:\WINNT\system32\urlmon.dll' is under Windows System File Protection.[cpp]

    Wie kann ich damit umgehen?
    Indem du es nicht in den Installer mit aufnimmst. Es ist eine Systemdatei - wenn du die auf einem anderen System installierst, für das die DLL nicht passt... *puff*

    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  15. #15
    pepsi_gx pepsi_gx ist offline Mitglied Gold
    Registriert seit
    Jun 2009
    Beiträge
    127
    Zitat Zitat von deepthroat Beitrag anzeigen
    Indem du es nicht in den Installer mit aufnimmst. Es ist eine Systemdatei - wenn du die auf einem anderen System installierst, für das die DLL nicht passt... *puff*

    Gruß
    Ich hab es "excluded" und es hat geklappt.

    Frage: der Datei 'urlmon.dll' bedarf mein Programm zum Ausführen. Wenn ich das Setup Projekt jetzt ohne sie auf nem anderen PC installiere, führt es nicht zum Fehler? Oder sucht er automatisch nach der ähnlichen 'urlmon.dll' auf dem anderen PC (unter 'C:\WINNT\system32\')?
     

Ähnliche Themen

  1. xmlRpcClient.execute(...);
    Von crazyOI im Forum Java
    Antworten: 2
    Letzter Beitrag: 11.11.08, 14:49
  2. Prepared und Execute
    Von starfoxfs im Forum PHP
    Antworten: 2
    Letzter Beitrag: 13.02.08, 09:32
  3. Execute Immediate
    Von honki im Forum Relationale Datenbanksysteme
    Antworten: 0
    Letzter Beitrag: 28.08.06, 08:32
  4. Cannot execute program - MSVC++
    Von pking im Forum C/C++
    Antworten: 10
    Letzter Beitrag: 27.11.04, 04:15