Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Visual C++ 6.0: Вопрос по DLL...

Ответить
Настройки темы
Visual C++ 6.0: Вопрос по DLL...
DANTIST


Сообщения: n/a

Профиль | Цитировать


Нужно сделать программу, которая будет искать в определенной директории все DLL-ки и
выводить их список. А потом загружать выбранную.
В этих DLL должны быть маленькие игры.
При компиляции главной программы не известно сколько будет этих DLL и какие у них будут имена.

Реально ли вообще загрузить функцию(класс) из DLL, о которой при компиляции ничего не известно?
Все эти DLL например могут экспортировать одну функцию, которая будет рисовать окно игры.

Можно ли сделать тоже самое, только с MFC. То есть, чтобы не вручную рисовать окно, а создавать с
использованием компонентов и классов MFC?

Отправлено: 20:28, 20-06-2003

 

Модер


Сообщения: 1716
Благодарности: 17

Профиль | Сайт | Отправить PM | Цитировать


DANTIST
Цитата:
Реально ли вообще загрузить функцию(класс) из DLL, о которой при компиляции ничего не известно?
Загрузить функцию(класс) - это как?
Функцию обычно выполняют.
Описание класса обычно используют для создания его экземпляров.

В любом случае, если известен прототип, по которому будет происходить поиск файлов/функций/классов, можно задекларировать это еще до написания первой такой DLL.

Например:

p = GetProcAddress(hDll, 'MySuperPuperFunction');
PMYSUPERPUPERPROTOTYPE(p)(param1, param2,param3,...);

Это если не хочется с интерфейсами связываться и аналогичными решениями.

-------
Васкецов Сергей
http://registry.oszone.net


Отправлено: 19:17, 21-06-2003 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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

DANTIST


Сообщения: n/a

Профиль | Цитировать


Делаю так...

- В DLL пишу:
__declspec(dllexport) void MyMessage(void)
{
   MessageBox(NULL, "This Message from DLL!", "!!!", MB_OK);
}

- В главной программе пишу:
__declspec(dllimport) void MyMessage(void);
HINSTANCE hDll;
FARPROC MyProcAddr;
if (( hDll = LoadLibrary("MyDll.dll") != NULL)
{
  MyProcAddr = GetProcAddress(hDll, "MyMessage";
  if (MyProcAddr != NULL)
     (MyProcAddr)();
  else
      MessageBox(NULL, "MyMessage address not given!", "Error!", MB_OK);
}
else
{
  MessageBox(NULL, "MyDll.dll not found!", "Error!", MB_OK);
}
FreeLibrary(hDll);

Что не так? Почему не определяется адрес функции?

P.S. Я не подключал .lib файл.

Отправлено: 02:44, 22-06-2003 | #3


Модер


Сообщения: 1716
Благодарности: 17

Профиль | Сайт | Отправить PM | Цитировать


DANTIST
Скорее всего некорректно собираешь MyDll.dll.
Depends-ом погляди, что и как там экспортируется из нее в итоге. Если будут лишние сивмолы в имени - поищи mangling на rsdn.ru

-------
Васкецов Сергей
http://registry.oszone.net


Отправлено: 13:56, 22-06-2003 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Visual C++ 6.0: Вопрос по DLL...

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
.NET - Вопрос по Visual Basic Script и обсуждение. S1stem Программирование и базы данных 3 15-04-2009 02:55
Разное - [решено] dwmapi.dll; mpr.dll; shlwapi.dll Reset5 Microsoft Windows 2000/XP 2 14-06-2008 16:31
Вопрос по Visual Basic.Net MrX Программирование и базы данных 4 01-08-2004 10:45
Вопрос по Visual C++ Andryxa Программирование и базы данных 2 24-11-2003 00:05
Visual Studio6.0 Visual FoxPro не могу найти меню Database Serg170580 Программирование и базы данных 1 07-04-2003 23:17




 
Переход