Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 225
от 26.10.2005, 14:09

Администратор:Калашников О.А.
В рассылке:Подписчиков: 223, Экспертов: 31
В номере:Вопросов: 1, Ответов: 3


Вопрос № 28054: Здравствуйте уважаемые эксперты. Не могли бы вы подсказать возможно ли в программе на С++ осуществить выполнение той или иной dll-функции? И если да то как это зделать? Заранее благодарен....

Вопрос № 28.054
Здравствуйте уважаемые эксперты. Не могли бы вы подсказать возможно ли в программе на С++ осуществить выполнение той или иной dll-функции? И если да то как это зделать?
Заранее благодарен.
Отправлен: 21.10.2005, 11:27
Вопрос задал: Юра (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Sager
Здравствуйте, Юра!
Не совсем понятен вопрос...
Создай новый проект и укажи, что ты создаешь Win32 Dynamic-Link Library. После компиляции ты получишь DLL,а потом создаешь простой экзешник и юзаешь функции.
Еще можно выполнить функцию dll на лету(прописав это в экзешнике):
HINSTANCE hLib=LoadLibrary("DLLTEST.DLL");
HANDLE func = GetProcAddress((HMODULE)hLib, "имя_функции");
Ответ отправил: Sager (статус: 10-ый класс)
Отправлен: 21.10.2005, 16:33
Оценка за ответ: 5

Отвечает: Jadd
Здравствуйте, Юра!
А среда какая? Если MSVC,тогда там есть три варианта. Первый, как вам уже описали. Второй - это статическая линковка, когда к проекту прилинковывается lib-файл, а в проекте используется h.-файл с объявлениями функций из dll. Третий и самый простой способ - использовать MFC-extention dll. Суть втом, что там вообще почти ничего не нужно делать, кроме самого программинга функций и классов. Просто юзаете свои функции и классы, а компиллер сам соберет и dll, и экзешник. Выберайте удобный Вам вариант.
---------
Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Практикант)
Отправлен: 21.10.2005, 16:48
Оценка за ответ: 5

Отвечает: estiGi
Здравствуйте, Юра!
Что значит - возможно ли? А как бы иначе работали программы? Если, конечно, я правильно понял вопрос.
В длл можно хранить и ресурсы, и функции, и классы. И их можно использовать как из ехе, так и из другой длл.
Длл можно подключить напрямую (Неявное связывание) -
#pragma comment (lib, "mydll.lib")
тогда можно вызывать функции напрямую, по имени. Но они должны быть объявлены экспортируемыми внутри длл, а вызывающий модуль должен объявить их импортируемыми.
Или можно вызвать и выполнить функцию напрямую, см. приложение

Приложение:

Ответ отправил: estiGi (статус: 2-ой класс)
Отправлен: 21.10.2005, 23:57


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.

Rambler's Top100 Яндекс


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.cplus
Архив рассылки
Отписаться
Вспомнить пароль

В избранное