No ACL setup yet! Denying access to everyone.
pl:edu:zmitac:n1z:ja:lab2
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| pl:edu:zmitac:n1z:ja:lab2 [2021/04/03 19:20] – [Biblioteka asemblerowa dll] ktokarz | pl:edu:zmitac:n1z:ja:lab2 [2021/04/10 17:06] (current) – [Instalacja środowiska Visual Studio Community 2019 i konfiguracja do tworzenia bibliotek dll napisanych w MASM.] pczekalski | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Instalacja środowiska Visual Studio Community 2019 i konfiguracja do tworzenia bibliotek dll napisanych w MASM. ====== | + | ====== |
| ===== Instalacja ===== | ===== Instalacja ===== | ||
| Line 193: | Line 193: | ||
| - Odczytać aktualny adres interesującej nas funkcji wywołując GetProcAddress, | - Odczytać aktualny adres interesującej nas funkcji wywołując GetProcAddress, | ||
| - Użyć funkcji odwołując się do jej adresu. | - Użyć funkcji odwołując się do jej adresu. | ||
| + | Przykładowy kod mógłby wyglądać tak: | ||
| < | < | ||
| Line 203: | Line 204: | ||
| { | { | ||
| dllHandle = LoadLibrary(TEXT(" | dllHandle = LoadLibrary(TEXT(" | ||
| - | std::cout << "Hello World!\n"; | ||
| MyProc procedura = (MyProc)GetProcAddress(dllHandle, | MyProc procedura = (MyProc)GetProcAddress(dllHandle, | ||
| std::cout << procedura(); | std::cout << procedura(); | ||
| } | } | ||
| </ | </ | ||
| + | |||
| + | Użycie funkcji z parametrami wymaga nieco zmodyfikowanych definicji typu. Należy także zwrócić uwagę na typ wartości zwracanej przez funkcję. Pamiętać należy, że w przypadku liczb zmiennoprzecinkowych, | ||
| + | |||
| + | < | ||
| + | ... | ||
| + | typedef int(_stdcall* MyProc)(int, | ||
| + | typedef double(_stdcall* FloatProc)(double, | ||
| + | ... | ||
| + | </ | ||
| + | |||
| + | ==== Zadanie do zrealizowania w ramach laboratorium ==== | ||
| + | Należy napisać bibliotekę DLL w asemblerze i program w C++ demonstrujący działanie tej biblioteki.\\ | ||
| + | **Biblioteka DLL** ma udostępniać funkcje wykonujące i zwracające wynik podstawowych obliczeń arytmetycznych (dodawanie, odejmowanie, | ||
| + | **Program w C++** ma wywoływać wszystkie funkcje przekazując przykładowe wartości parametrów i wyświetlić wyniki na ekranie. Nie jest wymagany interfejs użytkownika - wartości do obliczeń mogą być umieszczone w kodzie programu. | ||
| + | |||
pl/edu/zmitac/n1z/ja/lab2.1617470441.txt.gz · Last modified: by ktokarz
