/
Halladdin
/
compPract
Обзор
Документация
Войти
/
Halladdin
/
compPract
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
LoadLib.c
96 строк
2 KB
Halladdin
commit1
24 дек 2024, 05:18
24 дек 2024, 05:18
cd8eaed
Код
Авторство
О чём код?
#include "LoadLib.h" #include "func.h" #define ASIZE 45 #define MCOL 10 #define MLINE 6 void LoadRun(const char* libName, int num) { void* lib; <<<<<<< HEAD #ifdef _WIN32 lib = LoadLibrary(libName); #endif ======= lib = dlopen(libName, RTLD_LAZY); >>>>>>> no-windows if (!lib) { printf("cannot open library '%s'\n", libName); return; } if (num == 1) { void (*funArr)(int*, int); char* nameFunc[3] = {"input_arr", "output_arr_int", "func_arr"}; int flag = 1, i = 0; int arr[ASIZE] = { 0 }; while (flag) { funArr = (void (*)(int*, int)) <<<<<<< HEAD #ifdef _WIN32 GetProcAddress((HINSTANCE)lib, nameFunc[i++]); #endif ======= dlsym((HINSTANCE)lib, nameFunc[i++]); >>>>>>> no-windows if (funArr == NULL) { printf("cannot load func\n"); } else { funArr(arr, ASIZE); } if (i == 3) flag = 0; } } else if (num == 2) { void (*funMatr)(int*, int, int); char* nameFunc[3] = { "input_matrix", "table_arr_int", "func_matrix" }; int flag = 1, i = 0; int matrix[MLINE][MCOL]; while (flag) { funMatr = (void (*)(int*, int, int)) <<<<<<< HEAD #ifdef _WIN32 GetProcAddress((HINSTANCE)lib, nameFunc[i++]); #endif ======= dlsym((HINSTANCE)lib, nameFunc[i++]); >>>>>>> no-windows if (funMatr == NULL) { printf("cannot load func\n"); } else { funMatr(matrix[0], MLINE, MCOL); } if (i == 3) flag = 0; } } } void LoadEnd(const char* libName) { <<<<<<< HEAD #ifdef _WIN32 FreeLibrary((HINSTANCE)libName); #endif ======= dlclose(libName); >>>>>>> no-windows }