|
Модераторы: bsa |
|
Шкурик |
|
||||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 17.9.2017 Репутация: нет Всего: нет |
Доброго времени суток уважаемые программеры!
Проблема в том, что в связи с полным отсутствием опыта никак не могу скомпилить проект с использованием dll. Сразу скажу, что ни уж несколько дней настойчиво гуглю и экспериментирую, но результата ноль. Топиков в сети много, но ни один вариант не помог. Дано: Библиотека реализации программного уровня протокола Wake для связи с внешними устройствами через COM порт Wake protokol. В наличии - файлы библиотеки wsp32.dll, wsp32.lib, wsp32.h, wsp32.cpp. Задача: Прилинковать эту dll к проекту, чтобы можно было использовать ее функции. Инструменты: Первый - среда devcpp 4.9.9.2 (Mingw port of GCC). Второй - Visual C++ 2008 Express. Что делалось: Пытался использовать неявное подключение библиотеки, но на опрепделенном этапе появилась чуйка, что проект создан автором в Borland и я его в своих средах никогда неявно не слинкую. И наконец попытался подключить явно. В качестве теста попытался использовать только одну функцию:
Журнал компиляции:
Это все в Dev-C++. Эта среда мне как-то ближе всего. Но если ничего не получится, можно перейти на VC++. Сейчас основная тема для меня - это сам язык через консольные приложения и общение с железяками (устройства на микроконтроллерах) через COMport. Исходники библиотеки прилепил. Заранее благодарен! Это сообщение отредактировал(а) Шкурик - 18.9.2017, 09:44 Присоединённый файл ( Кол-во скачиваний: 1 ) wsp_dll.zip 29,96 Kb |
||||
|
|||||
xvr |
|
|||
Эксперт Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
Во первых - ваш main это буйная помесь как минимум 3х разных попыток загрузить библиотеку и взять адрес функции (все 3 попытки неправильные)
Так же прослеживается помесь С++ и С, и Unicode/ANSII режимов компиляции Там будет тоже самое. Для начала отделите мух от котлет и загрузите вашу библиотеку. Хинт - вызовы LoadLibrary и GetProcAddress должны присутствовать в ОДНОМ экземпляре. Тайпдеф для вашей AccessCOM должен быть тоже один, и его использование в тексте должно так же быть AccessCOM , а не P_AccessCOM и не PFN_AccessCOM
Посмотрел на сорцы - может и слинковаться и заработать, но не факт :( Включите ее в свой проект как сорцы (только __fastcall из них уберите) - должно заработать |
|||
|
||||
Шкурик |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 17.9.2017 Репутация: нет Всего: нет |
XVR! Спасибо Вам огромное, что откликнулись! Буду разбираться. Очень бы хотелось добить этот вопрос.
|
|||
|
||||
Шкурик |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 17.9.2017 Репутация: нет Всего: нет |
Вопрос решился!
Вот тестовый код, который скомпилился и сделал то, что от него и требовалось:проверил наличие порта, открыл его, отослал пакет и закрыл порт.
Только правда с typedef не совладал в контексте этой задачи. А вот FARPROC помог. Но главное тут было то, что добрый человек задал правильное направление, за что XVR Вам еще раз большое спасибо. Я хоть действительно отделил котлеты от мух и нашел действительно рабочий подход. В другой раз попробую через typedef, но это уже будет совсем другая история. |
|||
|
||||
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |