Vă mulțumim pentru susținere

Cum împachetați un proiect vizual de studio c ++ pentru lansare?

Mă întreb cum să faceți o versiune de lansare care include toate fișierele DLL necesare în .exe, astfel încât programul poate fi rulat pe o mașină fără dezvoltare fără a fi nevoie să instalați redistributableul microsoft pe mașina țintă.

Fără a face acest lucru veți primi mesajul de eroare conform căruia configurația aplicației nu este corectă și să reinstalați.

0
adăugat
Doar utilizați un expert de configurare, cum ar fi Inno Setup. Inno Setup, în special, este foarte ușor de utilizat dacă tot ce aveți nevoie este să împachetați o grămadă de fișiere.
adăugat autor sashoalm

4 răspunsuri

  1. Choose Project -> Properties
  2. Select Configuration -> General
  3. In the box for how you should link MFC, choose to statically link it.
  4. Choose Linker -> Input. Under Additional Dependencies, add any libraries you need your app to statically link in.
0
adăugat
@BruceConnor. Legarea bibliotecilor le include static în fișierul executabil. Opusul se numește legătura dinamică, care ar permite executabilului să caute dll s (= biblioteca de link-uri dunice) la pornire.
adăugat autor danijar
S-ar putea să lipsească ceva (nu sunt un expert), dar după ce urmați pașii dvs., trebuie să împachetați toate dll în folderul exe . Nu a fost intenția OP de a avea totul împachetat în fișierul exe ?
adăugat autor Malabarba

Ați fi în căutarea unei legături statice (spre deosebire de o legătură dinamică)

Nu sunt sigur că multe dintre redistribuibilele MS leagă static.

0
adăugat

Dacă sunteți în căutarea pentru a afla care dll este mașina dvs. țintă lipsește apoi utilizați depends.exe care a venit cu MSDev, dar poate fi, de asemenea, găsit

0
adăugat

Rețineți că Microsoft nu vă recomandă să conectați static timpul de rulare în proiectul dvs. , deoarece acest lucru împiedică serviciul să fie întreținut prin actualizarea Windows pentru a repara erorile de securitate critice. Există, de asemenea, potențiale probleme dacă treceți memoria dintre fișierele .exe și .dll principale ca și cum fiecare dintre aceste legături statice timpul de execuție se poate termina cu malloc / probleme de nepotrivire liberă.

Puteți include DLL-urile cu executabilul, fără a le compila în fișierul .exe și fără a rula instrumentul de redistribuire - aceasta este ceea ce fac și se pare că funcționează bine.

Singura zbura din unguent este că trebuie să includeți fișierele de două ori dacă distribuiți pentru o gamă largă de versiuni Windows - noile sisteme de operare au nevoie de fișiere în directoare definite în mod manifest și cele mai vechi doresc toate fișierele din directorul de programe .

0
adăugat