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

LoadLibrary

20.07.2011, 09:36. Показов 10696. Ответов 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
Ответ Создать тему
Новые блоги и статьи
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время? Никакой пенсии. Никакого нового. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru