» »

[c#]Kako vgraditi dll datoteke

[c#]Kako vgraditi dll datoteke

bucket ::

Torej je možno kako vgraditi dll datoteke v aplikacijo? Tako da ne nastanejo ob exe fajlu.
Imam tudi source od dll-ja ampak če ga dodam v solution explorerju ga pol nemorem/neznam uporabljat.
Visual Studio 2005

Lp
  • spremenil: bucket ()

imagodei ::

dll je dll - dynamic link library. Mogoče bi pomagalo, če bi na Wikipediji prebral kaj o tem.

DLL datoteke ne "nastanejo ob exe fajlu". Zelo simpl povedano so dll datoteke zbirka funkcij in ta zbirka daje svoje funkcije na uporabo drugim programom. Z ustreznim klicem funkcije iz DLL-ja lahko izvršljiva datoteka uporablja to funkcijo znotraj sebe. IOW, funkcija za neko pogosto opravilo je že napisana, tvoj program pa samo pokliče to funkcijo iz dll-ja.

Ne vem, kaj hočeš doseči s tem, da bi dll-je vgradil v aplikacijo?
- Hoc est qui sumus -

bucket ::

Vem da ne "nastanejo" se tja skopirajo.

Hočem dosečt to, da ko bom aplikacijo prenesel da prenašam samo exe fajl. Zdaj ko naredim bulid imam še zraven 2 dll-ja (usblib in graphlib; no saj to zdaj nima pomena kaki dll-ji so) in bi rad da bi se to vključilo v exe fajl.

Namesto treh datotek potrebnih za delovanje programa bi rad imel samo eno.

morbo ::

Napiši installer... recimo NSIS

noraguta ::

Pust' ot pobyedy k pobyedye vyedyot!

zerox ::

Če pravi da hoče imeti en exe na koncu in ne installerja, ki bi dlle potem zraven namestil in registriral *sigh*.

Mogoče bo pomagal ILMerge

mja.. gr8 timing ;>

Zgodovina sprememb…

  • spremenil: zerox ()

imagodei ::

madzi> "Vem da ne "nastanejo" se tja skopirajo."

Tudi to ni rečeno. Ne vem, kakšne nastavitve imaš in kako ti kodo skompajla, ampak res ni mus, da se ti dll-ji kopirajo v isti direktorij, kot exe.

V bistvu je lepa količina dll-jev, ki jih uporablja mnoštvo nekih programov, nameščenih pod c:\windows\system32
- Hoc est qui sumus -

bucket ::

V tem primeru se skopira. Za povezavo z usb in risanje grafov mam 2 dll-ja ki sem ju pač downloadal iz neta. Pol sem ju dodal v toolbox in od tam v mojo aplikacijo. Sistemski dll-ji se ne kopirajo.

LP

bucket ::

Heh, ta ILmerge deluje super. Še končna datoteka z dll-ji je komaj opazno večja. TNX!!

KaiSmith ::

MrBrdo ::

madzi: DLL moraš vključit v resource aplikacije. Potem pa ob zagonu stvar "extractaš" nekam. Da bi imel DLL ves čas v exe datoteki in ga tudi uporabljal pa ne gre.
http://www.codeproject.com/KB/cs/embedw...
http://support.microsoft.com/kb/319292

V glavnem DLL spravi nekako v resources potem pa ga najdi preko imena in odpreš stream, potem ga lahko skopiraš na poljubno lokacijo.

Edit: ok če imaš .NET assembly/DLL potem bo verjetno ILmerge še bolje. Če bi imel C++ DLL pa bi moral nekako tako postopat.
MrBrdo

Zgodovina sprememb…

  • spremenilo: MrBrdo ()

nightrage ::

Vključiš dll v projekt (torej tudi referenco) nato izbereš dll in nastaviš dva propertija torej build action: embedded resource in copy to output directory: do not copy! Pri uporabi v aplikaciji naložiš dll dinamično preko reflection-a link.

Zgodovina sprememb…



Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

C# in SQLite knjižica

Oddelek: Programiranje
161119 (853) bsslo
»

[VB.NET] - Kako registrirati DLL-je ob inštalaciji?

Oddelek: Programiranje
81176 (1072) darkolord
»

Problem z kompajlanjem primerov

Oddelek: Programiranje
91086 (1032) MasterBlaster
»

VB.NET in statično povezovanje

Oddelek: Programiranje
5958 (863) 64202
»

C in Dll

Oddelek: Programiranje
71137 (1044) Senitel

Več podobnih tem