Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

DarkFitzi

Alter Hase

  • »DarkFitzi« ist der Autor dieses Themas

Beiträge: 608

Wohnort: Eisenberg, Thüringen

Beruf: Schüler, 10te Klasse

  • Private Nachricht senden

1

16.02.2006, 15:51

Visual C++ 2005 Programme auf Rechnern ohne Visual C++ 2005

Ok ich hab eine paar Möglichkeit gefunden Programme, die mit VC8 erstellt wurden auf Rechnern auszuführen, wo kein VC8 installiert ist.
Wer die Fehlermeldung "Diese Anwendung konnt nicht gestartet werden, weil die Anwendungskonfiguration nicht korrekt ist" oder "Die benötigte Datei MSVCR80.dll wurde nicht gefunden" kennt, weis was ich meine. ;)

1. Möglichkeit:
einfach das .NET 2.0 Framework installieren. Das is aber die schlechteste Lösung da man meist nur einen kleinen Teil des ganzen Frameworks braucht.

2. Möglichkeit
Man liefert die CRT Datein mit. Das sind folgende Datein:

- Microsoft.VC80.CRT.manifest, bzw Microsoft.VC80.DebugCRT.manifest (Debug-Version)
- msvcm80.dll, bzw msvcm80d.dll
- msvcp80.dll, bzw msvcp80d.dll
- msvcr80.dll, bzw msvcr80d.dll

Diese müssen sich dann im Exe Verzeichnis des Programmes befinden, oder in einem Unterordner namens "Microsoft.VC80.CRT" / "Microsoft.VC80.DebugCRT".

Release
Die Dateien befinden sich hier:
"...\Microsoft Visual Studio 8\VC\redist\x86 (oder amd64, je nach Maschine)\Microsoft.VC80.CRT\*hier sind die datein*"

Falls ihr die MFC oder die ATL benutzt befinden sich die Datein dafür hier:
"...\Microsoft Visual Studio 8\VC\redist\x86 (oder amd64)\Microsoft.VC80.MFC\*hier sind die datein*" und hier
"...\Microsoft Visual Studio 8\VC\redist\x86 (oder amd64)\Microsoft.VC80.ATL\*hier sind die dateien*"

Debug
Die Dateien befinden sich hier:
"...\Microsoft Visual Studio 8\VC\redist\Debug_NonRedist\x86 (oder amd64)\Microsoft.VC80.CRT\*hier sind die datein*"

Falls ihr die MFC benutzt befinden sich die Dateien dafür hier:
"...\Microsoft Visual Studio 8\VC\redist\Debug_NonRedist\x86 (oder amd64)\Microsoft.VC80.MFC\*hier sind die datein*"

für Visual C++ 2005 Express Nutzer
Da die oben genannten Ordner nur ab der Standard Edition vorhanden sind, müsst ihr euch die 3 Dlls selber besorgen und die Manifest selber erstellen.

Hier sind die Dlls:
"C:\WINDOWS\WinSxS\x86(oder amd64)_Microsoft.VC80.CRT_*hier folgt nen langer Code*" - Release
"C:\WINDOWS\WinSxS\x86(oder amd64)_Microsoft.VC80.DebugCRT_*langer Code*" - Debug

So müssen die Manifest-Dateien aussehen:

Release:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Copyright © 1981-2001 Microsoft Corporation-->
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <noInheritable/>
  <assemblyIdentity
    type="win32"
    name="Microsoft.VC80.CRT"
    version="8.0.50608.0"
    processorArchitecture="x86"
    publicKeyToken="1fc8b3b9a1e18e3b"
   />
  <file name="msvcr80.dll"/>
  <file name="msvcp80.dll"/>
  <file name="msvcm80.dll"/>
</assembly>


Debug:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Copyright © 1981-2001 Microsoft Corporation -->
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <noInheritable/>
    <assemblyIdentity
        type="win32"
        name="Microsoft.VC80.DebugCRT"
        version="8.0.50608.0"
        processorArchitecture="x86"
        publicKeyToken="1fc8b3b9a1e18e3b"
    />
    <file name="msvcr80d.dll"/>
    <file name="msvcp80d.dll"/>
    <file name="msvcm80d.dll"/>
</assembly>


3. Möglichkeit
Man linkt die CRT Datein statisch zu seiner exe dazu. Dazu "Project -> Project Properties -> Configuration Properties -> C/C++ -> Code Generation -> Runtime Library von "Multi-Threaded DLL" in "Multi-Threaded" ändern. Das hat den Nachteil, dass man die CRT Datein später nicht manuell updaten kann und bei vielen selbsterstellten Dlls braucht man unnötig viel Speicher, da alle Dlls die CRT statisch linken...

4. Möglichkeit
Man führt auf dem Zielrechner die vcredist_x86.exe aus. Hier findet ihr sie:
"...\Microsoft Visual Studio 8\SDK\v2.0\Bootstrapper\Packages\vcredist_x86 (oder x64, je nach Maschine)\*hier ist die Datei*"
Ich würde die Welt gern verbessern, doch Gott gibt mir den Sourcecode nicht! :-(

rewb0rn

Supermoderator

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

2

16.02.2006, 17:48

Danke
Die Diskussion bezüglich dieses Threads findet hier statt.