Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
0 / 0 / 1
Регистрация: 28.03.2016
Сообщений: 4

Обращение к ресурсам DLL из самой DLL

02.04.2016, 19:29. Показов 2564. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Коллеги, добрый день.
Получил следующее задание - Создать библиотеку, DLL назначение которой, выполнить экспорт некоторой функции, в теле которой создается экземпляр некоторого класса (Присутствует в проекте, то есть входит в код библиотеки.) и собственно возвращает указатель на него (созданный объект). Далее, по мере реализаций методов, класса, приходится работать с ресурсами ( тип ресурса, RT_RCDATA), так же подключаются к проекту, то есть находятся в той же библиотеке.
Приложение сервер, (реализация мне не известна), Подключает мою библиотеку, получает экспортируемый метод, и даже, получает результат его работы, то есть указатель на объект. Далее тот же сервер, имея объект, вызывает его методы, по мере надобности. в одном из методов объекта, есть работа с ресурсами, то есть используются методы, FindResourse()..... и т.д, Причем, hModule = NULL, естественно ресурс не находится. Я пробовал, поиск ресурсов в процедуре DLLmain(), там как бы ресурсы есть, то есть все работает(Но только у меня есть подозрение, что этого делать в этой процедуре нельзя!).
Вопрос. Что за зверь эта DLL, (как правильно назвать тип таких библиотек), если это не MFC, Не ATL, но в ней есть наследование абстрактных интерфейсов, класс, объект которого создается, совсем простой. Еще хотелось бы понять, как правильно спроектировать, такой проект, то есть, надо ли для работы с ресурсами, и из обработкой создавать отдельный класс, или все прикручивать в "Основному", если все таки желательно, то в какой момент создать, объект такого класса... или есть другие методы. В общем, я начинающий, программист, из далекой глубинки, прошу не пинать сильно.)) если надо коды, с удовольствием оформлю примеры.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.04.2016, 19:29
Ответы с готовыми решениями:

Как узнать путь к загруженной DLL из самой DLL?
Создаю небольшую программку в папке c:/test/app/, есть DLL в папке c:/test/dll/. В коде самой dll, после её подгрузки в программу, можно...

Узнать путь к dll из самой dll
Собственно вопрос в названии темы. Тут проблема вот в чем, dll запускается из mq4/mq5 программы, где пути к dll явно не прописываются ...

Ошибка об отсутствии MSVCP140D.dll, ucrtbased.dll, CONCRT140D.dll, VCRUNTIME140D.dll
Добрый день, товарищи. Возникла проблема. Делаю программу с использованием openCV 3.1 на Visual Studio 2013. При компиляции выдает ошибку...

1
0 / 0 / 1
Регистрация: 28.03.2016
Сообщений: 4
04.04.2016, 07:48  [ТС]
Лучший ответ Сообщение было отмечено rfootq как решение

Решение

несколько примеров кода. который используется.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
// Функция которая экспортируется DLL, 
// В ней создается экземпляр класса, CMyClass/
 
extern "C" long GetClassObject(const WCHAR_T* pNames, IComponentBase** pIntf) {
 
    if (!*pIntf)
    {
        *pIntf = new CMyClass();
        return (long)*pIntf;
    }
    return 0;
    
}
функция которая работает с ресурсами. ресурсы как я говорил находятся тут же.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// в параметр приходит значение NULL, потому как в объекте нет указателя на модуль...
void CMyClass::InitContent(HMODULE hModule) {
        
    epf = FindResource(hModule, MAKEINTRESOURCE(IDR_RCDATA1), RT_RCDATA);
 
    if (epf == NULL)
    {
        MessageBox(0, L"Не удалось выполнить загрузку компонента, возможно компонент поврежден", L"Ошибка подключения ресурса", 0);
        return;
    }
 
    ptrEPF = LoadResource(hModule, epf);
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.04.2016, 07:48
Помогаю со студенческими работами здесь

Доступ к ресурсам через сторонний dll
При создании Проекта библиотеки классов (DLL), можно добавлять в неё данные как ресурс (так же как и в Windows Forms). А можно ли...

Доступ ресурсам dll, exe и прочих файлов
Встала такая проблема: необходимо получить доступ к ресурсам файла, если конкретнее, нужно отобразить иконки, которые есть в дллках и...

Кто может поделиться файлами ogg.dll, vorbis.dll и vorbisfile.dll - 32-х и 64-битными версиями?
Движок перевожу на платформу Win64 и нужно, чтобы разрядность ЕХЕ и DLL совпадали, а в интернете искал 64-битные версии ogg.dll, vorbis.dll...

Затупил, скажите где взять libmysqld.dll, libmysqld50.dll, libmysqld51.dll
Вечер добрый, ставлю ZEOS на Delphi 7, и для нормальной работы нужны файлы libmysqld.dll, libmysqld50.dll, libmysqld51.dll. Но я нигде...

Сборка Qt: отучение Qt от mingw10.dll, libgcc_s_dw2-1.dll и других Qt***.dll
В связи с тем, что часто возникают одни и те же вопросы, а в нете копаться никто не любит привожу перевод буржуйской вики по отлучению...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru