Я хочу вызвать некоторые сторонние DLL-процедуры из моей собственной DLL. Я просто не знаю, как это сделать на C++.Может ли DLL вызвать/загрузить другую DLL?
ответ
Вы можете использовать load-time dynamic linking или run-time dynamic linking в своей DLL так же, как в исполнителе. Единственное ограничение - не звонить LoadLibrary
из функции DllMain
, чтобы избежать взаимоблокировок.
LoadLibrary и GetProcAddress есть, но один из, ваших друзей ...
Обычно вы связываете к DLL через библиотеку экспорта в вашем проекте. Затем функции DLL могут быть вызваны вашей программой, если DLL находится на пути к программе во время выполнения.
Это также возможно (но намного больше работы), чтобы избежать необходимости связывания времени требуемых функций путем ручной загрузки DLL и получения требуемых адресов функций, но это не обязательно, если сторонняя DLL поддерживает обычные механизмы связи времени.
Импорт библиотеки подходит, если .dll можно смело предположить, что там до начала приложения. В противном случае ему нужна LoadLibrary() и т. Д. – seand 2010-12-06 20:26:10
Если в этой DLL-файле есть .lib-файл, вы просто добавляете его на вкладку компоновщика и импортируете его функции статически. Если это не так, есть некоторые инструменты для создания .lib-файла из .dll.
Также вы можете импортировать функции динамически, используя LoadLibrary
и GetProcAddress
.
MSDN говорит, что вы не можете вызвать LoadLibrary из DllMain. Но в большинстве случаев ничего плохого не происходит.
- 1. Возможно ли создать DLL, содержащую другую DLL?
- 2. Может ли DLL вызвать .NET DLL?
- 3. Импорт dll в другую dll C++
- 4. Динамическая загрузка DLL в другую DLL
- 5. DLL использует другую DLL в C++
- 6. Может ли DLL-ссылка на другую DLL с библиотекой импорта, если первая DLL связана во время выполнения?
- 7. VB.NET встроенная DLL в другую DLL как встроенный ресурс?
- 8. Как определить, является ли dll COM-dll
- 9. Вставить одну DLL в другую DLL В C#
- 10. Создание dll, который ссылается на другую dll (MSVS2008 C++)
- 11. Ссылка dll - Имеет ли имя файла dll?
- 12. Возможно ли заменить системную dll прокси-dll?
- 13. dll dll, который ссылается на другую DLL проекта, не работает при загрузке
- 14. Может ли Ruby импортировать .NET DLL?
- 15. Может ли SELinux защититься от инъекций DLL?
- 16. Может ли Delphi использовать .dll, если требуется?
- 17. Может ли Dll предоставить модульность основной программе?
- 18. Может ли CWinApp быть размещен в DLL?
- 19. Может ли D DLL работать в SAS?
- 20. DLL ссылки DLL
- 21. Удаляется ли DLL, если загруженная DLL-память выгружается?
- 22. ссылки dll dll с dll windows
- 23. как включить другую dll в расширение php?
- 24. Одиночные DLL V DLL
- 25. . Проверка зависимостей dll dll
- 26. dllimport не может загрузить dll
- 27. Могу ли я открыть только часть общих классов .NET DLL через другую «API» DLL?
- 28. Введите оператора, вызывающего другую dll в F #
- 29. Приложение Qt не может найти QtGui4.dll и QtCore4.dll
- 30. Невозможно загрузить DLL 'OraOps12.dll
Конечно. Что это за DLL? – 2010-12-06 20:21:09