DLL Borland C TWORZENIE

Aby użyć kodu w pliku DLL, musimy najpierw stworzyć DLL zawierający kod, prawda? Rację. Stwórzmy taką bestię w CBuilder. Następnie badamy użycie DLL utworzonego w CBuilder, w innym systemie, ale teraz mamy zamiar załadować biblioteki DLL w CBuilder.

Jedna mała uwaga. W rzeczywistości istnieją dwa różne sposoby, aby korzystać z funkcji w bibliotece DLL, utworzonego w CBuilder. Pierwszy - jest stworzenie implib użyteczność biblioteki import, który pochodzi z CBuilder. Następnie biblioteki import może być bezpośrednio zintegrowany z aplikacji, a system Windows automatycznie załadować biblioteki DLL w czasie wykonywania. Pamiętaj, że musisz użyć implib programu dostarczonego z CBuilder, zamiast bardziej starożytnej wersji innego systemu, jak biblioteki CBuilder mają inny format niż starej bibliotece, a zatem potrzebuje świeżego program do generowania tych bibliotek z DLL. Po zaimportowaniu biblioteki do biblioteki DLL, można po prostu opisać prototypy funkcji, których potrzebujesz, i używać ich bezpośrednio, jak gdyby zostały one opisane w aplikacji. W naszym przykładzie, jesteśmy bardziej zainteresowani w mechanizmie dynamicznego obciążenia, więc możemy zrobić to sami.

W tym przykładzie będziemy tworzyć biblioteki DLL w innym środowisku programistycznym, w tym przypadku - w Visual C ++. Wybrałem ten ośrodek jest częściowo dlatego, że jestem świadom Visual C ++, ale głównie dlatego, że prawdopodobnie będziesz używać DLL z innych źródeł (tzw stron trzecich), co zaczęło się w CBuilder. W każdym razie, musimy zrobić to samo, więc dlaczego nie pokazać coś innego?

W przeciwieństwie CBuilder Visual C ++ środę (VC) nie chcą sobie stworzyć DLL dla Ciebie. Zamiast tego tworzy plik budowlanej (makefile) i pozostawić je puste, bez plików źródłowych. Myślę, że jest to kolejny dobry powód, aby przejść do CBuilder. W każdym przypadku należy utworzyć Visual C ++ nowy plik i dodaj następujący kod. Jeśli nie masz Visual C ++ lub jesteś zbyt leniwy, aby pobrać środowisko programistyczne i zdobyć cały ten kod, można znaleźć ten DLL wraz z przykładowym kodzie na załączonym CD-ROM.

Czytaj więcej:   Program Szukaj PARTY NA INTERNECIE

#include

#include

#include

#include

BOOL WINAPI DllEntryPoint (HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpReserved) {

BOOL fSuccess = PRAWDA; przełącznik (fdwReason) {

Sprawa DLL_PROCESS_ATTACH: case DLL_THREAD_ATTACH:

przerwa;

Sprawa DLL_PROCESS_DETACH: case DLL_THREAD_DETACH:

przerwa;

}

powrotu (fSuccess);

}

zewnętrzny „C”

{

__declspec (dllexport) int CalFunction1 (void)

{

MessageBox (NULL, «Nazwałeś funkcja 1», «Informacje», MB_OK); return 0;

}

__declspec (dllexport) Int CallFunction2 (char * ul)

{

MessageBox (NULL, «Nazwałeś funkcja 2», str, MB_OK); return 0;

}

__declspec (dllexport) void CallFunction3 (int nValue)

{

char szBuffer [20]; sprintf (szBuffer, «% d», nValue);

MessageBox (NULL, szBuffer, «wartość», MB_OK);

}

}

Ważne w tym kodzie są trzy funkcje. Tak długo, jak można ignorować śmieszne wyglądające modyfikatorów declspec (dllexport) . To tylko sposób, aby wyjaśnić VC, że te funkcje muszą być wywożone w DLL, tak aby inne programy mogą z nich korzystać. Może myślał, że funkcje eksportowane domyślnie; w tym przypadku większość świata programowania pod Windows nie jest sposobem wydawało się do ciebie.

Trzy funkcje są zdefiniowane w pliku DLL: CallFunction1 , CallFunction2 i CallFunction3 . Różnią się one rodzajem powrotu, jak również liczbę i rodzaje argumentów. Będziemy wykorzystywać wszystkie trzy funkcje w naszym przykładzie.

UWAGA

Jak widać, funkcje są zadeklarowane z modyfikatora extern "C" w poprzednim wpisie. Visual C ++ i przy użyciu różnych schematów CBuilder zmiany nazwy (maglowania) podczas generowania nazwę funkcji. Nie patrzeć w aukcji i eksportu do zapamiętania nazwy funkcji uzyskanych w przebudowanej formie, pozwalamy kompilator użyć dzwoniąc konwencji, jak również zewnętrzny system nazwa przyjęta w C. Oznacza to, że w wyniku tych nazw funkcji w postaci eksportu będzie po prostu CallFunction1 i tak dalej. d.

Kiedy zidentyfikowane DLL, następnym krokiem jest stworzenie projektu w CBuilder, używając funkcji Pisaliśmy i eksportowanych z DLL. Powinieneś wiedzieć, że tylko wywożone funkcje mogą być dynamicznie ładowane z DLL w czasie wykonywania, lub wbudowany w aplikacji poprzez biblioteki importu. Niewyeksportowane funkcje są niewidoczne dla świata zewnętrznego i mogą być używane tylko przez innych funkcji w bibliotece DLL. Korzystamy z tej okazji, w dalszej części książki, kiedy patrzymy na drugą stronę równania: wykorzystania DLL, utworzonego w CBuilder w systemie Visual C ++.

Czytaj więcej:   Windows 7 NIE DZIAŁA Gadgets KALENDARZ

Źródło: M. Telles - Borland C ++ Builder. Biblioteka programisty - 1998

Ćwierkać
jak
Tagi: C ++ Builder, Visual, import, stosowanie, imprezy, funkcyjne, funkcje,

WWW.PERVYE SHAGI.RU :: KROK 91 - TWORZENIE DLL NA ŚRODOWISKO C ++ ...

Wybierz swój język

polskiangielski niemiecki hiszpański francuski włoski portugalski turecki arabski ukraiński szwedzki węgierski bułgarski estoński Chiński (uproszczony) wietnamski rumuński tajski słoweński słowacki serbski malajski norweski łotewski litewski koreański japoński indonezyjski hinduski hebrajski fiński grecki holenderski Czech duński chorwacki Chiński (tradycyjny) Filipińska urdu Azeybardzhansky ormiański Białoruski bengalski gruziński kazachski Kataloński mongolski rosyjski Tadzhitsky Tamil'skij telugu Uzbetsky


Dodaj komentarz

Twój e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *