Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.93/46: Рейтинг темы: голосов - 46, средняя оценка - 4.93
 Аватар для noob c++
3 / 3 / 0
Регистрация: 11.07.2011
Сообщений: 49

LoadLibrary

20.07.2011, 09:36. Показов 11057. Ответов 58
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте
Нужно подгрузить мою .dll в память.

C++
1
2
3
#include <windows.h>
 
HMODULE myDLL = LoadLibraryA("my.dll");
не компилится (error LNK1120: 1 неразрешенных внешних элементов)
подскажите как исправить. новичек
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.07.2011, 09:36
Ответы с готовыми решениями:

LoadLibrary()
Вызываю LoadLibrary() (файл dll4.dll лежит в каталоге экзешника) HMODULE hdll1 = LoadLibraryA(&quot;dll4.dll&quot;); по...

Ошибка LoadLibrary
В папке TEMP лежит dll, которую я хочу подгрузить, но при вызове функции LoadLibrary возвращается ошибка 126. HMODULE hNSS = NULL; ...

[Решено] LoadLibrary
Здраствуйте. Сделал динамическую библиотеку в студии, загружал ее там же в консольное приложение с помощью LoadLibrary - все работает,...

58
 Аватар для Melzas
38 / 38 / 6
Регистрация: 20.07.2011
Сообщений: 88
20.07.2011, 16:46
Студворк — интернет-сервис помощи студентам
Ничего особенного, стандартные аргументы WinMain, которые вам не пригодятся для теста. Я это предложил просто чтобы проверить не создали ли вы все-таки неконсольный проект Win32. Если этот код скомпилируется - значит так и есть. Если нет, то лучше поступить как написано в посте soft.creator.
0
 Аватар для noob c++
3 / 3 / 0
Регистрация: 11.07.2011
Сообщений: 49
20.07.2011, 17:35  [ТС]
Цитата Сообщение от Melzas Посмотреть сообщение
Ничего особенного, стандартные аргументы WinMain, которые вам не пригодятся для теста. Я это предложил просто чтобы проверить не создали ли вы все-таки неконсольный проект Win32. Если этот код скомпилируется - значит так и есть. Если нет, то лучше поступить как написано в посте soft.creator.
Все дело в том что в VS 2010 только Консольное приложение Win32 и Консольное приложение CLR. Выбрать между консольным и Win32 нельзя
0
 Аватар для Melzas
38 / 38 / 6
Регистрация: 20.07.2011
Сообщений: 88
20.07.2011, 18:03
А вы вообще давно VS пользуетесь? Как вы добавляете файл с кодом в проект?
0
 Аватар для noob c++
3 / 3 / 0
Регистрация: 11.07.2011
Сообщений: 49
20.07.2011, 18:13  [ТС]
Цитата Сообщение от Melzas Посмотреть сообщение
А вы вообще давно VS пользуетесь? Как вы добавляете файл с кодом в проект?
После того как создал Консольный Win32 проект в дополнительно я ставлю галочку рядом с пустой. Дальше открывается проект и я добавляю файл: файл/создать/.cpp.
Открывается окно куда я и пишу код.
VS я пользуюсь недавно, т.к. только начал изучать С++. До этого с програмированием не сталкивался вообще
0
 Аватар для Melzas
38 / 38 / 6
Регистрация: 20.07.2011
Сообщений: 88
20.07.2011, 19:03
Кажется, я знаю в чем ваша проблема. Вы просто не добавляете ваш файл с кодом в проект. Создавайте файл с помощью Solution explorer (Обозреватель решений, если у вас русская версия). Он по умолчанию находится в левой части экрана. Если нет - откройте его из меню View (Вид). Там увидите папки проекта. Ваш файл необходимо добавить (или создать новый) в папку Source files (Файлы исходного кода). Дальше, думаю, разберетесь.
1
 Аватар для soft.creator
106 / 106 / 11
Регистрация: 17.10.2010
Сообщений: 283
20.07.2011, 21:42
Цитата Сообщение от Melzas Посмотреть сообщение
Кажется, я знаю в чем ваша проблема. Вы просто не добавляете ваш файл с кодом в проект. Создавайте файл с помощью Solution explorer (Обозреватель решений, если у вас русская версия). Он по умолчанию находится в левой части экрана. Если нет - откройте его из меню View (Вид). Там увидите папки проекта. Ваш файл необходимо добавить (или создать новый) в папку Source files (Файлы исходного кода). Дальше, думаю, разберетесь.
Похоже, Вы правы
0
 Аватар для noob c++
3 / 3 / 0
Регистрация: 11.07.2011
Сообщений: 49
21.07.2011, 08:44  [ТС]
Melzas спасибо. Проект не компилился из-за неправильного добавления файла в проект.
Сейчас все нормально.
Как сейчас можно проверить загрузку dll ? Увидеть что мой загрузчик подгружает именно ту библиотеку которая лежит с ним в папке.
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
21.07.2011, 08:53
The first directory searched is the directory containing the image file used to create the calling process
Т.е. в первую очередь он будет искать в папке с exe-шником.
Если ты не ошибся в указании имени библиотеки, то будь уверен в том что он загрузит именно ту которая находится в папке.
0
71 / 76 / 9
Регистрация: 30.06.2011
Сообщений: 176
21.07.2011, 08:55
Цитата Сообщение от noob c++ Посмотреть сообщение
Как сейчас можно проверить загрузку dll ? Увидеть что мой загрузчик подгружает именно ту библиотеку которая лежит с ним в папке.
Во время отладки:
ctrl+alt+U - в этом окне загруженные модули показываются.
1
 Аватар для noob c++
3 / 3 / 0
Регистрация: 11.07.2011
Сообщений: 49
21.07.2011, 08:59  [ТС]
Цитата Сообщение от lazybiz Посмотреть сообщение
Т.е. в первую очередь он будет искать в папке с exe-шником.
Если ты не ошибся в указании имени библиотеки, то будь уверен в том что он загрузит именно ту которая находится в папке.
в папке с .ехе лежит my.dll, но при запуске просит msvcr100d.dll
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
21.07.2011, 09:03
Это Runtime библиотека. Тебе необходимо установить что-то типа vc_redist. Хотя на сомом деле в винде она должна быть. Если тебе не нужна информация об отладке, то попробуй откомпилировать как Release а не Debug.
1
 Аватар для noob c++
3 / 3 / 0
Регистрация: 11.07.2011
Сообщений: 49
21.07.2011, 09:11  [ТС]
Цитата Сообщение от lazybiz Посмотреть сообщение
Если тебе не нужна информация об отладке, то попробуй откомпилировать как Release а не Debug.
То есть вверху в окошке где Debug исправить на Release и F7 ?
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
21.07.2011, 09:14
Цитата Сообщение от noob c++ Посмотреть сообщение
То есть вверху в окошке где Debug исправить на Release и F7 ?
Именно!
0
 Аватар для noob c++
3 / 3 / 0
Регистрация: 11.07.2011
Сообщений: 49
21.07.2011, 09:41  [ТС]
Цитата Сообщение от lazybiz Посмотреть сообщение
Если тебе не нужна информация об отладке, то попробуй откомпилировать как Release а не Debug.
отлично. спасибо. размер в 5 раз меньше ))
а .dll просит все равно. может можно ее как-то в проект встроить ?
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
21.07.2011, 10:27
Тебе в проекте нужно выставить опцию Multithreaded, static link, вот только где она я не помню. Должна быть где-то в опциях линковки. Попробую поискать....
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
21.07.2011, 10:30
Ищи примерно там где показано на рисунке.
Миниатюры
LoadLibrary  
1
71 / 76 / 9
Регистрация: 30.06.2011
Сообщений: 176
21.07.2011, 10:30
Цитата Сообщение от noob c++ Посмотреть сообщение
отлично. спасибо. размер в 5 раз меньше ))
а .dll просит все равно. может можно ее как-то в проект встроить ?
Чтобы при запуске программа не просила динамические библиотеки специфичные для MSVC ?
ALT+F7 -> "Свойства конфигурации" -> C/C++ -> "Библиотека времени выполнения" -> Там выбрать можно /MT или /MTd ( кроме DLL)
Они будут статически линковаться в exe файл и размер его соответственно увеличится.
1
 Аватар для noob c++
3 / 3 / 0
Регистрация: 11.07.2011
Сообщений: 49
21.07.2011, 11:25  [ТС]
Заработало без левых dll. Вес увеличился сильно.
Какая разница между /MT и /MTd ?
0
71 / 76 / 9
Регистрация: 30.06.2011
Сообщений: 176
21.07.2011, 11:32
Цитата Сообщение от noob c++ Посмотреть сообщение
Заработало без левых dll. Вес увеличился сильно.
Какая разница между /MT и /MTd ?
/MT для релизной версии, а /MTd для отладки. d - значит debug
Как правило первые более быстрые и оптимизированные. А вторые более медленные с большим количеством проверок и предоставляют больше возможностей при отладке.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.07.2011, 11:32

LoadLibrary возвращает 0
Добрый вечер. Прошу помощи у знающих людей. Есть нативная dll,которую нужно использовать в шарпе. static class NativeMethods ...

Ошибка 126 в LoadLibrary
Здравствуйте. Возникла проблема при динамической загрузке DLL в RAD Studio XE8. Не видит саму DLL (GetLastError упорно возвращает ошибку...

LoadLibrary() не возвращает хэндл
Не могу понять, почему HINSTANCE myLib = LoadLibraryEx((LPCWSTR)&quot;myDll.dll&quot;, 0, DONT_RESOLVE_DLL_REFERENCES); Не возвращает хэндл. Файл...

LoadLibrary не загружает dll
Здравствуйте. Вот такой код HINSTANCE hLib; int Error = GetLastError(); hLib =...

Повесить хук на LoadLibrary
Добрых времени суток. Очень давно видел где-то информацию, что отследить инжект сторонней библиотеки в полезный процесс можно повесив хук...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
59
Ответ Создать тему
Новые блоги и статьи
Транслитерация текста с кириллицы на латиницу
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru