Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:



Přilinkování DLL do výsledného EXE

Seznam témat     Nová odpověď

Přihlásit se     Registrace     Zapomenuté heslo

Re: Přilinkování DLL do výsledného EXE

Autor: xyz3

11:36:42 01.10.2010

> Ty to pořád nechápeš.

Hold nejsem jasnovidec :)

Citovat příspěvek

 

Re: Přilinkování DLL do výsledného EXE

Autor: expertsoft

7:52:07 01.10.2010

OPRAVA: Je to tam a funguje to.
Díky, díky, díky!

Citovat příspěvek

 

Re: Přilinkování DLL do výsledného EXE

Autor: expertsoft

7:47:28 01.10.2010

Díky, konečně jsem byl pochopen :-)
Jinak, máte pravdu - věděl jsem, že jsem se s tím někde ve VC setkal a muselo to tedy být VC2008.
Takže bych tipnul, že tohle bude jedno z omezení varianty Express.

Citovat příspěvek

 

Re: Přilinkování DLL do výsledného EXE

Autor: JeToJinak

7:43:14 01.10.2010

xyz3 Napsal:
-------------------------------------------------------
> Operace je na dva kroky, patrně jste udělal jenom
> jeden.
>
> V prvním kroku se z knihovny vytvoří LIB.
> V druhém kroku se LIB přilinkuje do EXE.
>
> Výsledkem celé operace je jedno velké EXE, ve
> kterém je aplikace i knihovna.

Pro xyz3:

Ty to pořád nechápeš. David nechce dělat žádnou knihovnu. On prostě překládá jenom exáč bez jakékoli knihovny. Problém je, že když ten exáč přeloží ve VC 2010 tak odkazuje na speciální knihovny z VC 2010, bez kterých ten exáč pak nefunguje na jiném počítači. Ve VC 2008 k tomu byla volba pro překladač

C++/Code Generation/Runtime Library/MT

která když se nastavila a exáč se přeložil tak se jeho Release (ne Debug) verze dala používat i na jiném počítači bez těch knihoven z VC. No a on nemůže ve VC 2010 podobnou volbu jako byla dříve ve VC 2008 najít a na to se právě ptá. Já VC 2010 nepoužívám a tak tu volbu taky neznám.

Citovat příspěvek

 

Re: Přilinkování DLL do výsledného EXE

Autor: xyz3

18:00:59 30.09.2010

Operace je na dva kroky, patrně jste udělal jenom jeden.

V prvním kroku se z knihovny vytvoří LIB.
V druhém kroku se LIB přilinkuje do EXE.

Výsledkem celé operace je jedno velké EXE, ve kterém je aplikace i knihovna.

Citovat příspěvek

 

Re: Přilinkování DLL do výsledného EXE

Autor: expertsoft

17:15:32 30.09.2010

To ale ve výsledku dostanu lib knihovnu, to jsme se špatně pochopili.
Já chci exe aplikaci, kterou mohu na další počítače přenést pouze jako ten jeden soubor.

Citovat příspěvek

 

Re: Přilinkování DLL do výsledného EXE

Autor: xyz3

15:15:06 30.09.2010

V knihovně General - Configuration Type, zvolit Static library

V EXE Linker - Input - Additional Dependencies, zde napsat cesty k .lib


Trochu je to komplikované tím, že LIB i EXE jsou ve dvou exemplářích Debug a Release, je třeba to vhodně pojmenovat.

Citovat příspěvek

 

Re: Přilinkování DLL do výsledného EXE

Autor: expertsoft

14:51:42 30.09.2010

Ad 1) jsem měl samozřejmě namysli, jen jsem se špatně vyjádřil.
Jak tedy ve Visual C++ 2010 nastavím statické linkování? Možná to přehlížím, ale nemohu to v konfiguraci projektu najít...

Citovat příspěvek

 

Re: Přilinkování DLL do výsledného EXE

Autor: xyz3

14:11:32 30.09.2010

Hotové DLL do EXE přilinkovat nelze a každý expert to ví.

Máte na výběr:
1) Slinkovat knihovny jako statické, statická knihovna se slinkuje do EXE automaticky
2) Uložit je do EXE jako resource, po spuštění EXE někam rozbalit a pak LoadLibrary+GetProcAddress
3) Uložit je do EXE jako resource, načíst do paměti a ručně simulovat LoadLibrary+GetProcAddress

1) je správně.

Citovat příspěvek

 

Přilinkování DLL do výsledného EXE

Autor: expertsoft

13:20:27 30.09.2010

Dobrý den,

zkouším Visual C++ 2010 Express a zajímá mě, jakým způsobem přilinkovat veškeré závislé knihovny do výsledného EXE pro případ, že bych chtěl poskytovat jednosouborovou aplikaci.


Předem děkuji za rady a přeji příjemný den.

Citovat příspěvek

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: