ßê ñòâîðèòè dll á³áë³îòåêó

DLL º ä³ëÿíêîþ êîäó, ùî çáåð³ãàºòüñÿ ó ôàéëàõ ç ðîçøèðåííÿì .dll. ijëÿíêà êîäó ìîæå âèêîðèñòîâóâàòèñÿ ³íøèìè äîäàòêàìè, àëå á³áë³îòåêà íå º ñàìà ïî ñîá³ äîäàòêîì. Ïî ñóò³ ñïðàâè, êîìïîíîâàíèé äèíàì³÷íî á³áë³îòåêè ÿâëÿþòü ñîáîþ íàáîðè ñêîìï³ëüîâàíèõ ôóíêö³é. Îäíàê ó òàêèõ á³áë³îòåê º ðÿä îñîáëèâîñòåé - íàïðèêëàä, ÿêùî ÿê³-íåáóäü ïðîãðàìè îäíî÷àñíî âèêîíóþòüñÿ â ñèñòåì³ ³ íèìè âèêîðèñòîâóþòüñÿ ôóíêö³¿, ùî çíàõîäÿòüñÿ â îäí³é DLL, òî â ïàì'ÿò³ ïîñò³éíî ïåðåáóâàòè áóäå ò³ëüêè îäíà ç á³áë³îòåê - òàêèì ìåòîäîì çàáåçïå÷óºòüñÿ åêîíîì³÷íå âèòðà÷àííÿ ïàì'ÿò³.
ßê ñòâîðèòè dll á³áë³îòåêó




Âàì çíàäîáèòüñÿ
  • Êîìï³ëÿòîð.
²íñòðóêö³ÿ
1
Ñòâîð³òü ó êîìï³ëÿòîð³ íîâèé ïðîåêò, ïîñë³äîâíî âèáèðàþ÷è ïóíêòè ìåíþ «Ôàéë», «Íîâèé», «Á³áë³îòåêà dll». Áóäå ñòâîðåíèé ïðîåêò ç íàñòóïíèì çì³ñòîì: «intWINAPI_Dll_Entry_Point (HINSTANCE_hinst_unsignedlong {return 1-}».


2
Êð³ì òîãî, áóäå ïðèñóòí³é îá'ºìíèé êîìåíòàð ç ïîïåðåäæåííÿì ïðî òå, ùî äëÿ ïðàöåçäàòíîñò³ á³áë³îòåêè íåîáõ³äíà ïîñòàâêà ðÿäó .dll çà óìîâè âèêîðèñòàííÿ åêçåìïëÿð³â êëàñó String. Äëÿ ³ìïîðòó òà åêñïîðòó ç DLL íåîáõ³äíî çàñòîñîâóâàòè ìîäèô³êàòîðè _import ³ _export â³äïîâ³äíî. Êð³ì öüîãî, çàëåæíî â³ä âåðñ³¿ êîìï³ëÿòîðà, äîïóñêàºòüñÿ âèêîðèñòàííÿ íîâîãî êëþ÷îâîãî ñëîâà _delspec () ç ïàðàìåòðàìè dllimport ³ dllexport â³äïîâ³äíî.
3
Äëÿ åêñïîðòóâàííÿ ôóíêö³é ç á³áë³îòåêè ïîòð³áíî îäèí çàãîëîâíèé ôàéë ³ç îïèñîì _delspec (dllexport) äëÿ åêñïîðòîâàíî¿ ôóíêö³¿, äëÿ ³ìïîðòóâàííÿ ôóíêö³é â äîäàòêó êîðèñòóâà÷åâ³ áóäå ïîòð³áíî âñòàíîâèòè àíàëîã³÷íèé ôàéë çàãîëîâêà, àëå ç _delspec (dllimport) îïèñîì, ùî ìîæå äîñòàâèòè íåçðó÷íîñò³. Öÿ ïðîáëåìà âèð³øóºòüñÿ ëåãêî: äîäàéòå â çàãîëîâí³ ôàéëè á³áë³îòåêè íàñòóïíå: «#ifdefined(BUILDDLL)-#defineDLL_EXP_declspec(dllexport)-#else-#ifdefined(BUILDAPP)-#defineDLL_EXP_declspec(dllimport)-#else-#defineDLL_EXP-#endif-#endif».
4
Cêîìï³ë³ðóéòå ïðîåêò. ßêùî íàòèñíóòè «Run», òî çàâåðøèâøè ñïîðóäó, êîìï³ëÿòîð âèäàñòü ïîâ³äîìëåííÿ ïðî â³äñóòí³ñòü ìîæëèâîñò³ âèêîíàííÿ ïðîãðàìè. Òåïåð ñë³ä íàïèñàòè ùî âèêëèêຠäîäàòîê. Ó ò³é æå äèðåêòî𳿠ñë³ä ñòâîðèòè íîâèé ïðîåêò (File / NewApplication), ó ôîðì³ ïîì³ñòèòè êíîïêó ³ ñòâîðèòè îáðîáíèê onclick.
5
ϳñëÿ öüîãî çàëèøèòüñÿ ò³ëüêè â³äêðèòè ïðîåêò ³ äîäàòè .lib-ôàéë ç ïîïåðåäíüîãî ïðîåêòó ç DLL (ïðàâèì êë³êîì, ïóíêòîì «Äîäàòè»), à ï³ñëÿ - çàïóñòèòè ïðîåêò.
Ïåðåãëÿä³â: 3051

Óâàãà, ò³ëüêè ÑÜÎÃÎÄͲ!