Есеп 1. Динамикалық кітапхананы пайдалану мысалы. #include
int main (void)
{
intx,y;
scanf ("%d%d",&x,&y);
swap (&x,&y);
printf ("x=%d y=%d\n",x,y); return 0;
}
//Кітапхана коды (swap.c) void swap (int *x, int *y)
{
int temp; temp=*x;
*x=*y;
*y=temp;
}
//Ең маңызды аумағы (Makefile) #Makefilefo user lib
MAIN: main.o libuser.so
gcc -o MAIN main.o -L. -luser -Wl,-rpath,. main.o: main.c
gcc -c main.c libuser.so: swap.o
gcc -shared -o libuser.so swap.o swap.o: swap.c
gcc -c -fPICswap.c clean:
rm -f *.o
Есеп 2. Кез-келген динамикалық dll-кітапханасын жүктеу мысалы.
// DynCall.c #include
#include
main()
{
// dll-дың дескрипторы HINSTANCE h;
void (*DllFunc) (char *str); h=LoadLibrary("MyFirstDLL.dll");
// қателерді тексеру
if (!h)
{
printf("Қате, MyFirstDLL.dll табылмады\n"); return;
}
DllFunc=(void (*) (char *str)) GetProcAddress(h,"Demo");
// Қатені тексеру if (!DllFunc)
{
printf("Қате ! MyFirstDLL кітапханасында Demo функциясы жоқ\n"); return;
}
// Demo функциясын шақыру DllFunc("Test");
// Динамикалық жадыны босату FreeLibrary(h);
}
Зертханалық жұмысты орындауға арналған жеке тапсырмалар:
user32.dll кітапханасының функцияларын зерттеңіз.
kernel32.dll кітапханасының функцияларымен танысыңыз,
gdi.dll кітапханасының функцияларын пайдаланып программа құрыңыз.
ЛАБОРАТОРИЯЛЫҚ ЖҰМЫС № 15
Тақырыбы: Дистрибутивті файлдар
Жұмыстың мақсаты: Инсталляциялық пакеттерді құрастыруды үйрену, Installshield инсталляторымен танысу, программаны тарату жолдарын меңгеру.
Достарыңызбен бөлісу: |