ZaΦßteΦnφk

PokroΦil²

Profesionßl

Programovßnφ ve vφce jazycφch

Visual Basic .NET a Visual C++ .NET

 

Budete pot°ebovat p°ibli₧n∞ 2 hodiny

OperaΦnφ systΘm pou₧it² v p°φsp∞vku: Windows XP

V²vojovΘ nßstroje: Visual Studio .NET

 

 

Vß₧enφ Φtenß°i,

 

hlavnφm nßm∞tem pro dneÜek je problematika ämφchßnφô programovacφch jazyk∙. V nßsledujφcφch kapitolßch se pokusφme p°ijφt na to, jak m∙₧e b²t pro programßtora p°φnosnß prßce ve dvou (nebo i vφce) programovacφch jazycφch. Dßle se budeme soust°edit na praktickou demonstraci filozofie programovßnφ ve vφce jazycφch a vytvo°φme dynamicky linkovanou knihovnu (DLL) v prost°edφ Visual C++ a poslΘze vyu₧ijeme mo₧nostφ vytvo°enΘ knihovny ve Visual Basicu. V∞°φm, ₧e vßs nßm∞t dneÜnφ diskuse zaujal, a proto neztrßcejme Φas a pono°me se hloub∞ji do problematiky.

 

Obsah

Filozofie programovßnφ ve vφce jazycφch

KladnΘ a zßpornΘ strßnky filozofie programovßnφ ve vφce jazycφch

VB .NET a VC++ .NET: Krok 1 û Tvorba dynamicky linkovanΘ knihovny

Tvorba novΘho typu projektu ve VC++ .NET

Vysv∞tlenφ zßkladnφ struktury programovΘho k≤du ve VC++ .NET

P°idßnφ programovΘho k≤du pro exportovanou funkci

Tvorba definiΦnφho souboru (.DEF)

Kompilace dynamicky linkovanΘ knihovny ve VC++ .NET

VB .NET a VC++ .NET: Krok 2 û Vyu₧itφ dynamicky linkovanΘ knihovny ve VB .NET

P°idßnφ projektu VB .NET do stßvajφcφho °eÜenφ

Deklarace exportovanΘ funkce ve standardnφm modulu

Testovßnφ exportovanΘ funkce

Sestavenφ dynamicky linkovanΘ knihovny v distribuΦnφm provedenφ

 

 

Filozofie programovßnφ ve vφce jazycφch

 

Mo₧nß, ₧e s uveden²m termφnem ämφchßnφ programovacφch jazyk∙ô (angl. Mixed Language Programming) se st°etßvßte poprvΘ, mo₧nß, ₧e jste o n∞m ji₧ än∞coô slyÜeli, no stßle nevφte, o co ve skuteΦnosti jde. Poj∩me se tedy podφvat, jak se tato myÜlenka dostala do sv∞ta, ve kterΘm vlßdnou optimalizovanΘ algoritmy a poΦφtaΦovΘ instrukce. Jak jist∞ vφte, v poΦφtaΦovΘm sv∞te existuje pom∞rn∞ poΦetnß mno₧ina programovacφch jazyk∙, od t∞ch nejstarÜφch (ALGOL, COBOL, FORTRAN), p°es C a BASIC a₧ po nejnov∞jÜφ instance, jak²mi jsou Visual Basic .NET, Visual C# .NET nebo Visual C++ .NET. Ka₧d² programovacφ jazyk, kter² se nachßzφ na urΦitΘm v²vojovΘm stupni, byl v poΦßtcφch svΘ tvorby koncipovßn jako pom∙cka pro °eÜenφ jist²ch problΘmov²ch ·kol∙. ZjednoduÜen∞ se dß °φct, ₧e ka₧d² programovacφ jazyk se na svou podstatu existence (tedy °eÜenφ ·kol∙, pro kterΘ byl stvo°en) dφvß z vlastnφho pohledu. D∙kazem tohoto tvrzenφ jsou n∞kdy zcela specifickΘ postupy, kterΘ musφ programßtor ve dvou jazycφch uskuteΦnit, aby vy°eÜil stejnou ·lohu (nejjednoduÜÜφm p°φkladem m∙₧e b²t zapsßnφ cyklu For ve Visual Basicu a C++). I kdy₧ je ka₧d² programovacφ jazyk specifick², vÜechny jazyky disponujφ mnoha ästandardnφmiô konstrukcemi (v analogii s p°edchozφm p°φkladem, oba jazyky, Visual Basic i Visual C++ obsahujφ cyklus For). Rozvineme-li myÜlenku, ₧e ka₧d² programovacφ jazyk byl primßrn∞ urΦen na °eÜenφ jistΘho okruhu problΘm∙, m∙₧eme dojφt k poznßnφ, ₧e jeden jazyk m∙₧e b²t vhodn∞jÜφ na °eÜenφ jistΘ skupiny problΘm∙, zatφmco jin² jazyk si zase dob°e poradφ s jinou, specifickou mno₧inou ·kol∙. Jestli₧e popojedeme v naÜich ·vahßch jeÜt∞ o krok dßle, objevφme samotnou myÜlenku programovßnφ ve vφce jazycφch. Posu∩te sami: ProΦ pou₧φvat na vy°eÜenφ jistΘho problΘmu jazyk, ve kterΘm je toto °eÜenφ kdy₧ ne nemo₧nΘ, tak alespo≥ hodn∞ obtφ₧nΘ? Nebylo by lepÜφ jednoduÜe napsat onu kritickou Φßst programu v jinΘm jazyce, kter² si s naÜφm problΘmem umφ lΘpe poradit?

 

Pou₧itφ teorie mφchßnφ programovacφch jazyk∙ m∙₧e p°inΘst mnoho v²hod:

 

┌spora Φasu

Otßzka roz°eÜenφ programßtorskΘho problΘmu, se kter²m nevφme v prost°edφ jednoho jazyka äani hnoutô, se v jinΘm jazyce m∙₧e stßt otßzkou n∞kolika mßlo okam₧ik∙.

ZlepÜenφ v²konu

Napsßnφ kritick²ch Φßstφ programu v jinΘm, ni₧Üφm, programovacφm jazyku m∙₧e zp∙sobit citelnΘ zlepÜenφ v²konu aplikace.

ZlepÜenφ rychlosti

S p°edchozφm bodem se ·zce vß₧e i zlepÜenφ rychlosti programu. V p°φpad∞, ₧e napφÜeme optimalizovan² k≤d ni₧Üφ ·rovn∞, a ten pak vyu₧ijeme ve stßvajφcφ aplikaci, zlepÜenφ rychlosti m∙₧e b²t signifikantnφ.

Znovupou₧itelnost programovΘho k≤du

Pokud jsme schopni napsat nφzko·rov≥ov² k≤d, kter² pozd∞ji äzabalφmeô do komponenty pro dalÜφ pou₧itφ, nemusφme ji₧ tuto Φßst k≤du psßt op∞t pozd∞ji. JednoduÜe vyu₧ijeme to, co ji₧ mßme p°ipravenΘ.

 

Pro ·plnost v²kladu je zapot°ebφ vzpomenout i n∞kterΘ stinnΘ strßnky tΘto teorie programovßnφ.

 

V∞domostnφ ·rove≥

Jde o ·rove≥ znalostφ a schopnostφ, kterou musφ programßtor disponovat. Ne ka₧d² programßtor toti₧ umφ dob°e programovat ve vφce jazycφch. V tΘto souvislosti nenφ mo₧no zapomenout na prvotnφ zv²ÜenΘ nßklady na zv²Üenφ znalostnφ ·rovn∞ programßtora. M∙₧e jφt nap°. o absolvovßnφ specializovanΘho programßtorskΘho kurzu, nßkup literatury a pod.áá

Nutnost vlastnit dalÜφ programovacφ nßstroj

Pokud se rozhodnete pro programovßnφ ve vφce jazycφch, budete pravd∞podobn∞ muset investovat do nßkupu dalÜφho v²vojovΘho nßstroje, kterΘho cena m∙₧e znaΦn∞ ovlivnit vßÜ rozpoΦet pro vyvφjenou aplikaci.

 

 

V dneÜnφ p°φpadovΘ studii budeme spoleΦn∞ °eÜit jeden z nejΦast∞jÜφch ·kol∙ programßtora pracujφcφho v prost°edφ dvou programovacφch jazyk∙. P∙jde o vytvo°enφ dynamicky linkovanΘ knihovny (DLL) ve Visual C++ a nßsledn∞ jejφ implementace do aplikace vyvφjenΘ ve Visual Basicu.

 

Pokud nßhodou pat°φte mezi skupinu programßtor∙ VB, kter²m se p°i vyslovenφ nßzv∙ äC/C++ô, p°φpadn∞ äVisual C++ô ud∞lß Üpatn∞, nemusφte se ji₧ vφce obßvat a m∙₧ete z∙stat zcela klidnφ. V tomto Φlßnku toti₧ nep°edpoklßdßm, ₧e mßte n∞jakΘ zkuÜenosti jak s jazykem C/C++, tak s v²vojov²m prost°edφm Visual C++. V celΘm Φlßnku se uplat≥uje ov∞°enß technika postupu stylem äkrok za krokemô, proto se nemusφte obßvat jak²chkoliv nejasnostφ. Uvidφte, ₧e po p°eΦtenφ nßsledujφcφch °ßdk∙ budete i vy schopni vytvo°it jednoduchou DLL ve Visual C++.áá

 

 

Visual Basic .NET a Visual C++ .NET

Krok 1: Tvorba dynamicky linkovanΘ knihovny (DLL) ve Visual C++ .NET

 

V nßsledujφcφ ukßzce vytvo°φme standardnφ dynamicky linkovou knihovnu typu Win32, kterß bude obsahovat jednu funkci pro v²poΦet t°etφ mocniny Φφsla. Postupujte takto:

 

  1. Spus¥te Visual Studio .NET a z nabφdky File vyberte polo₧ku New a pak Project.

 

StejnΘho ·Φinku m∙₧ete docφlit i klepnutφm na ikonu New Project na standardnφm panelu ikon, nebo klepnutφm na tlaΦφtko New Project v okn∞ Start Page. Pokud okno Start Page po spuÜt∞nφ Visual Studia nenφ viditelnΘ, klepn∞te na nabφdku Help a aktivujte polo₧ku Show Start Page.

 

  1. Okno New Project upravte podle obr. 1.

 

 

Obr. 1 û Okno pro v²b∞r novΘho typu projektu

 

V levΘ Φßsti okna, v sekci Project Types, vyberte jako typ projektu Visual C++ Projects. V pravΘ Φßsti okna, v sekci Templates, vyberte polo₧ku Win32 Project. V textovΘm poli Name zadejte jmΘno pro vßÜ nov² projekt a zaÜkrtn∞te volbu Create directory for Solution, Φφm₧ zabezpeΦφte vytvo°enφ samostatnΘ slo₧ky pro vaÜe °eÜenφ. Kdy₧ jste se zm∞nami spokojeni, klepn∞te na tlaΦφtko OK. á

 

  1. Visual C++ zobrazφ okam₧it∞ pr∙vodce s nßzvem Win32 Application Wizard.
  2. Klepn∞te na polo₧ku Application Settings. V sekci Application Type vyberte mo₧nost DLL (obr. 2) a nakonec klikn∞te na tlaΦφtko Finish.

 

Obr. 2 û V²b∞r typu aplikace v pr∙vodci

 

Visual C++ poslΘze vytvo°φ vÜechny nezbytnΘ soubory, kterΘ si aplikace typu Win32 DLL vy₧aduje. Seznam t∞chto soubor∙ si m∙₧ete prohlΘdnout v Pr∙zkumnφkovi °eÜenφ (Solution Explorer). Okno Pr∙zkumnφka °eÜenφ by se m∞lo nachßzet v pravΘ hornφ Φßsti okna Visual C++ a jeho podoba je zachycenß na obr. 3.

 

 

Obr. 3 û Okno Pr∙zkumnφka °eÜenφ (Solution Explorer)

 

Nynφ poklepejte na polo₧ku DLL_C++.cpp, kterß se nachßzφ ve stromovΘ struktu°e pod uzlem Source Files. Visual C++ nßsledn∞ otev°e vybran² zdrojov² soubor projektu, kterΘho obsah pro vßs zobrazφ v okn∞ pro zßpis programovΘho k≤du (obr. 4).

 

 

Obr. 4 û Okno pro zßpis programovΘho k≤du ve Visual C++

 

V tomto okn∞ si m∙₧ete vÜimnout vφce v∞cφ, kterΘ se vßm (jako programßtorovi VB), m∙₧ou zdßt neznßmΘ a podivnΘ. Poj∩me tedy p∞kn∞ popo°ßdku a obsah okna si vysv∞tleme. Nu₧e, prvnφ dva °ßdky p°edstavujφ komentß°e, kterΘ do k≤du umφstil samotn² Visual C++. Zapamatujte si, ₧e ka₧d² komentß° (ve stylu jazyka C++) je uveden dv∞ma lomφtky, kterΘ jsou symbolem pro jedno°ßdkovΘ komentß°e. Znamenß to tedy, ₧e kdy₧ uvedete v k≤du dv∞ lomφtka a za nimi text, tento je pozd∞ji kompilßtorem chßpßn jako komentß° a je zcela ignorovßn.

 

DalÜφ nejasnostφ je pravd∞podobn∞ tento °ßdek:

 

#include "stdafx.h"

 

Prvnφ Φßst v²razu #include je takzvanß direktiva preprocesoru. Ta ä°φkßô preprocesoru, aby soubor s nßzvem ästdafx.hô zaΦlenil do programovΘho k≤du projektu. ╪eΦeno jin²mi slovy, kdy₧ preprocesor p°i svΘ prßci änarazφô na direktivu #include, vlo₧φ obsah souboru, kter² tato direktiva specifikuje, do samotnΘho programovΘho k≤du vyvφjenΘ aplikace. Soubor ästdafx.hô, jen₧ tvo°φ druhou Φßst v²razu, je tzv. hlaviΦkov²m souborem.

 

Preprocesor je typem textovΘho procesoru, kter² jist²m zp∙sobem modifikuje zdrojov² text programu jeÜt∞ p°ed samotnou kompilacφ (ve skuteΦnosti se preprocesor pou₧φvß jenom v prvnφ etap∞ kompilace programu).

á

Nßsleduje definice funkce DllMain, kterß je vstupnφm bodem (entry point) do dynamickΘ knihovny. Tuto funkci volß samotn² operaΦnφ systΘm p°i inicializaci a terminaci proces∙ a vlßken. Proto₧e v naÜφ ukßzce nebude chtφt vykonßvat ₧ßdnΘ operace p°i uveden²ch Φinnostech, m∙₧eme ponechat funkci DllMain v jejφ p∙vodnφ podob∞.

 

Ve vÜeobecnosti je dynamicky linkovanß knihovna napln∞na funkcemi, kterΘ je mo₧nΘ z jejφho prost°edφ pozd∞ji volat. Abyste do stßvajφcφho k≤du p°idali takΘ k≤d pro naÜφ exportovanou funkci, ud∞lejte nßsledovnφ:

 

  1. Umφst∞te kurzor myÜi pod vÜechen programov² k≤d (jeÜt∞ p°esn∞ji pod °ßdek s uzavφracφ slo₧enou zßvorkou).
  2. Zde zadejte tento fragment k≤du:

 

extern "C" __declspec(dllexport) __stdcall int Mocnina(short cislo)

{

ááááá return cislo*cislo*cislo;

}

 

Toto je zßpis pro exportovanou funkci. Pod pojmem äexportovanß funkceô se rozumφ funkce, kterß bude v budoucnosti volßna z programovacφho jazyka VB .NET. Aby bylo mo₧nΘ tuto funkci zavolat z programu VB .NET, je zapot°ebφ uvedenß definice funkce. Pokud odhlΘdneme od pou₧itφ modifikßtor∙ extern äCô, __declspec(dllexport) a volacφ konvence __stdcall, dostßvßme se k samotnΘ funkci. Jejφ nßzev je äMocninaô a jak je vid∞t, funkce mß jeden parametr, kter²m je prom∞nnß typu short s nßzvem äcisloô.

 

V jazyce C++ se prom∞nnΘ deklarujφ jinak ne₧ je to ve Visual Basicu. Zde je zapot°ebφ nejd°φve uvΘst datov² typ prom∞nnΘ a a₧ potΘ samotnΘ jmΘno prom∞nnΘ.

 

Proto₧e jde o parametr funkce, je nutno jej uzav°φt do kulat²ch zßvorek. Nßvratovß hodnota funkce je specifikovßna p°ed jmΘnem funkce; z uvedenΘho p°φkladu vidφme, ₧e p∙jde o nßvratovou hodnotou typu integer, jak specifikuje klφΦovΘ slovo int. T∞lo ka₧dΘ funkce v prost°edφ jazyka C/C++ je uzav°eno do slo₧en²ch zßvorek. T∞lem funkce se rozumφ p°φkazy, kterΘ se majφ provΘst tehdy, je-li funkce zavolßna. V naÜem p°φpad∞ si m∙₧ete vÜimnout, ₧e v t∞le funkce je jenom jedin² p°φkaz. Tento p°φkaz vypoΦte t°etφ mocninu Φφsla, kterou funkce p°i dokonΦenφ svΘ prßce vracφ. VÜechno, co nßsleduje za klφΦov²m slovem return p°edstavuje nßvratovou hodnotu funkce. KoneΦn∞, ka₧d² p°φkaz v jazyku C/C++ je ukonΦen nikoliv koncem °ßdku, n²br₧ st°ednφkem.

 

  1. Aby bylo pozd∞ji mo₧nΘ volat exportovanou funkci z Visual Basicu, je nutnΘ do projektu s DLL knihovnou zaΦlenit tzv. definiΦnφ soubor (.DEF), kter² explicitn∞ popisuje seznam funkcφ urΦen²ch na export. Vyberte tedy nabφdku Project a klepn∞te na polo₧ku Add New Item. Objevφ se dialogovΘ okno, ve kterΘm oznaΦte polo₧ku DEF File (obr. 5). Po zapsßnφ jmΘna souboru stiskn∞te tlaΦφtko Open.

 

 

Obr. 5 û V²b∞r definiΦnφho souboru pro export funkce z knihovny DLL

 

  1. Visual C++ ihned vytvo°φ a zobrazφ definiΦnφ soubor. V souboru by se m∞l nachßzet jeden °ßdek, ve kterΘm je zapsßno po₧adovanΘ slovo LIBRARY, kterΘ je nßsledovßno jmΘnem dynamickΘ knihovny.
  2. Do definiΦnφho souboru p°idejte dalÜφ °ßdek, ve kterΘm pomocφ klφΦovΘho slova EXPORTS urΦφte funkce, kterΘ se majφ exportovat (jin²mi slovy, kterΘ majφ b²t äviditelnΘô z externφho programu). V naÜem p°φpad∞ jde o jedinou funkci s nßzvem äMocninaô. V²slednou podobu definiΦnφho souboru m∙₧ete vid∞t na obr. 6.

 

P°i zßpisu jmΘna funkce m∞jte na pam∞ti, ₧e Visual C++ je äcase sensitiveô, tedy rozliÜuje malß a velkß pφsmena ve slovech. Pokud byste zadali mφsto °et∞zce äMocninaô °et∞zec ämocninaô, jednalo by se o zcela jinou funkci.á

 

 

Obr. 6 û V²slednφ podoba souboru DEF

 

VÜimn∞te si hv∞zdiΦky, kterß se nachßzφ v zßlo₧ce za jmΘnem DEF souboru na obr. 6. Tφmto zp∙sobem vßs Visual C++ upozor≥uje na skuteΦnost, ₧e obsah souboru se zm∞nil od tΘ doby, co jste tento soubor naposled ulo₧ili.

 

  1. Vyberte nabφdku File a uka₧te na p°φkaz Save All, nebo klikn∞te na stejnojmennou ikonu na panelu tlaΦφtek.
  2. Dßle aktivujte nabφdku Build a vyberte p°φkaz Build Solution, anebo op∞t klepn∞te na p°φsluÜnΘ tlaΦφtko.

 

Po vydßnφ p°φkazu na sestavenφ aplikace Visual C++ zkompiluje vÜechny nezbytnΘ soubory a vybuduje jedinou dynamickou knihovnu. Jestli₧e vÜe prob∞hlo tak, jak m∞lo, ve spodnφm panelu uvidφte text äBuild succeededô. V²born∞, dokßzali jste vytvo°it svou prvnφ dynamicky linkovanou knihovnu!

 

Podφvßte-li se do slo₧ky vaÜich projekt∙ a otev°ete slo₧ku Debug prßv∞ vytvo°enΘho projektu, m∙₧ete vid∞t knihovnu DLL v celΘ jejφ krßse tak, jak ji znßzor≥uje obr. 7.

 

 

Obr. 7 û Vytvo°enß dynamicky linkovanß knihovna (DLL)

á

Abyste nemuseli pozd∞ji zadßvat celou cestu k vaÜφ knihovn∞ DLL, zkopφrujte ji do systΘmovΘ slo₧ky Windows (Windows\System).

 

 

Visual Basic .NET a Visual C++ .NET

Krok 2: Vyu₧itφ dynamickΘ knihovny ve Visual Basicu .NET

 

Pro p°edvedenφ mo₧nostφ knihovny DLL v prost°edφ VB nejd°φve p°idßme do stßvajφcφho projektu standardnφ projekt VB. Postupujte takto:

 

  1. Zvolte nabφdku File, p°φkaz New a pak Project.
  2. V okn∞ pro v²b∞r projektu vyberte projekty VB (Visual Basic Projects) a jako konkrΘtnφ typ projektu vyberte Windows Application. Dßle vyberte volbu Add to Solution, Φφm₧ p°idßte projekt VB k ji₧ stßvajφcφmu projektu Visual C++. Nakonec nov² projekt pojmenujte a klepn∞te na tlaΦφtko OK.
  3. Visual Basic .NET vytvo°φ vÜechny nezbytnΘ soubory pro nov² projekt, kter² nßsledn∞ p°idß do ji₧ vytvo°enΘho °eÜenφ.
  4. P°idejte do projektu Visual Basicu standardnφ modul. Ud∞lßte to tak, ₧e vyberete nabφdku Project a klikn∞te na polo₧ku Add New Item. V objevivÜφm se okn∞ vyberte ikonu modulu a jeho vytvo°enφ potvr∩te stisknutφm tlaΦφtka OK. Do projektu VB se automaticky p°idß modul. Poklepejte na ikonu novΘho modulu v Pr∙zkumnφkovi °eÜenφ, Φφm₧ si vy₧ßdßte otev°enφ okna pro zßpis k≤du. Do modulu umφst∞te deklaraci exportovanΘ funkce z naÜφ DLL:

 

ááá á Public Declare Function Mocnina Lib "DLL_C++.dll" _

(ByVal cislo As Short) As Integer

 

  1. PokraΦujte tφm, ₧e na formulß° p°idßte jednu instanci ovlßdacφho prvku Button. Na vytvo°enou instanci poklepejte, Φφm₧ otev°ete okno pro zßpis programovΘho k≤du. Do obsluhy udßlosti Click tlaΦφtka dopl≥te tento °ßdek k≤du:

 

MessageBox.Show(Mocnina(3).ToString)

 

  1. Ulo₧te projekt VB klepnutφm na tlaΦφtko Save All.
  2. V Pr∙zkumnφkovi °eÜenφ klepn∞te prav²m tlaΦφtkem myÜi na nßzev projektu VB a z kontextovΘ nabφdky vyberte polo₧ku Set as Startup Project.
  3. Klikn∞te na tlaΦφtko Start, p°φpadn∞ stiskn∞te klßvesu F5 pro spuÜt∞nφ projektu.

 

Jakmile klepnete na tlaΦφtko, VB .NET zavolß exportovanou funkci s nßzvem äMocninaô, kterß vypoΦte t°etφ mocninu Φφsla 3 a nßvratovou hodnotu zobrazφ v okn∞ zprßvy (obr. 8).

 

 

Obr. 8 û Finßlnφ podoba spoluprßce aplikace VB a knihovny DLL

 

V²born∞, dynamicky linkovanß knihovna odvßdφ svou prßci na jedniΦku!

 

Abyste zmenÜili velikost v²slednφ knihovny DLL, m∙₧ete ji takΘ sestavit v distribuΦnφm provedenφ. V tomto provedenφ se k≤d pln∞ optimalizuje a rovn∞₧ se z n∞j odstranφ informace, kterΘ jsou urΦeny pouze pro proces odla∩ovßnφ knihovny. V prost°edφ Visual C++ ud∞lejte nßsledovnφ:

 

  1. Z nabφdky Build vyberte p°φkaz Configuration Manager. Objevφ se dialogovΘ okno, ve kterΘm urΦφte, aby se knihovna DLL kompilovala v provedenφ, kterΘ bude urΦenΘ pro distribuci. Z otevφracφho seznamu v sloupci Configuration vyberte polo₧ku Release (obr. 9). á

 

 

Obr. 9 û V²b∞r distribuΦnφho provedenφ knihovny DLL v okn∞ Configuration Manager

 

  1. Klepn∞te na tlaΦφtko Close a z nabφdky Build vyberte polo₧ku Build DLL_C++.á

á

Visual C++ uskuteΦnφ sestavenφ dynamicky linkovanΘ knihovny a ve stßvajφcφ slo₧ce projektu vytvo°φ dalÜφ slo₧ku s nßzvem äReleaseô. Ve slo₧ce äReleaseô se nachßzφ knihovna DLL, p°ipravenß na distribuΦnφ proces. Abyste m∞li lepÜφ p°edstavu o velikosti knihovny DLL, podφvejte se na obr. 10, kter² znßzor≥uje velikost knihovny DLL urΦenΘ pro odla∩ovßnφ a pro distribuci.

 

 

Obr. 10 û Porovnßnφ velikosti variant provedenφ knihovny DLL

 

 

V∞°φm, ₧e vßs uvedenß problematika zaujala a rozÜφ°ila vaÜe programßtorskΘ znalosti.

 

 

Jßn Hanßk