|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Вызвать функцию в dll |
|
|
C/C++ - Вызвать функцию в dll
|
Новый участник Сообщения: 28 |
Нашел нужный инклуд файл для своей задачи, но в С знаний 0, поэтому прошу помощи. Класс в атаче, нужно сделать функцию в dll, в которой произойдет вызов функции из инклуда.
P.S Использую Code Blocks. |
|
Отправлено: 18:25, 15-09-2013 |
![]() Старожил Сообщения: 165
|
Профиль | Отправить PM | Цитировать а вам так сильно нужна длл? а если функцию из инклуда переписать в сам файл с программой? тогда и длл не нужна.
|
Отправлено: 19:39, 15-09-2013 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 28
|
Профиль | Отправить PM | Цитировать Цель - использовать эту dll в программе написанной не на С.
|
Отправлено: 19:50, 15-09-2013 | #3 |
![]() Старожил Сообщения: 165
|
Профиль | Отправить PM | Цитировать load32, покопавшись в нете, нашёл на мой взгляд, решение:
http://stackoverflow.com/questions/1...-in-codeblocks по-русски:файл - новый - проект - консольной приложение - dll |
Отправлено: 20:01, 15-09-2013 | #4 |
Новый участник Сообщения: 28
|
Профиль | Отправить PM | Цитировать Эм, dll я как бы еще в состоянии сделать, проблема с функцией из аттача.
|
|
Отправлено: 20:40, 15-09-2013 | #5 |
![]() Ветеран Сообщения: 1180
|
Профиль | Отправить PM | Цитировать В чём конкретно проблема?
Если я правильно понял, самый надёжный способ - экспортировать функции как stdcall, без декораций (особенность gcc). В другой среде разработки сделать import lib на основании dll. На крайняк можно загрузить dll вручную. |
Отправлено: 21:42, 15-09-2013 | #6 |
Новый участник Сообщения: 28
|
Профиль | Отправить PM | Цитировать Проблема в том, что я просто незнаю как правильно вписать в функцию вызов другой. Появляется много ошибок.
#include "main.h" #include "mppc.h" // a sample exported function int DLL_EXPORT SomeFunction(u_char **src, u_char **dst, u_long *srcCnt, u_long *dstCnt, char *history, int flags) { return MPPC_Decompress(src, dst, srcCnt, dstCnt, history, flags); } extern "C" DLL_EXPORT BOOL APIENTRY DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { switch (fdwReason) { case DLL_PROCESS_ATTACH: // attach to process // return FALSE to fail DLL load break; case DLL_PROCESS_DETACH: // detach from process break; case DLL_THREAD_ATTACH: // attach to thread break; case DLL_THREAD_DETACH: // detach from thread break; } return TRUE; // succesful } undefined reference to `MPPC_Decompress(unsigned char**, unsigned char**, unsigned long*, unsigned long*, char*, int)'| ||=== Build finished: 1 errors, 0 warnings (0 minutes, 4 seconds) ===| |
Отправлено: 22:05, 15-09-2013 | #7 |
![]() Ветеран Сообщения: 1180
|
Профиль | Отправить PM | Цитировать дык файлы из архива тоже надо включить в сборку (добавить в проект, проверить, не исключены ли они из сборки)
и ещё, если у тебя проект "C++", а не "C" сделай так вокруг include "mppc.h": Ещё варианты: 1. переименуй *.c в *.cpp 2. не переименовывай, но сделай проект C, а не C++ объяснение ошибок линка кроется в различиях C и C++; здесь хорошо разъясняется: http://www.gamedev.ru/code/forum/?id=56367 |
Отправлено: 22:59, 15-09-2013 | #8 |
Новый участник Сообщения: 28
|
Профиль | Отправить PM | Цитировать |
Последний раз редактировалось load32, 16-09-2013 в 19:22. Отправлено: 18:35, 16-09-2013 | #9 |
![]() Ветеран Сообщения: 1180
|
Профиль | Отправить PM | Цитировать раз у тебя дошло дело до линковки, значит с инклюдами gcc как-то разобрался
|
Отправлено: 09:10, 17-09-2013 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Помогите сбить перехватчиков c user32.dll, advapi32.dll, netapi.dll | Pr0ga | Лечение систем от вредоносных программ | 3 | 26-06-2010 18:06 | |
Для чего нужны dll библиотеки или Учимся редактировать dll | Ban_vam_Dam | Флейм | 5 | 31-07-2009 17:41 | |
C/C++ - [решено] Как в С вызвать функцию из Delphi библиотеки? | mingw | Программирование и базы данных | 6 | 06-07-2009 10:11 | |
Разное - [решено] dwmapi.dll; mpr.dll; shlwapi.dll | Reset5 | Microsoft Windows 2000/XP | 2 | 14-06-2008 16:31 | |
Разное - как вызвать функцию | hhh8486 | Программирование и базы данных | 2 | 29-03-2008 13:17 |
|