Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Существует ли механизм вызова функций из DLL по ID ? / 7 сообщений из 7, страница 1 из 1
28.05.2005, 19:17
    #33089136
gogo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Существует ли механизм вызова функций из DLL по ID ?
Добрый день.
Существует ли механизм вызова функций из DLL по ID ?
Параметры упакованы в тесктовую строку.
Есть движок на VC++ у заказчика на площадке, который в зависимости от ситуации на объекте реального времени вызывает ту или иную функцию. Количество функций постоянно возрастает и уже перевалило за вторую сотню.
Как спректировать DLL, чтобы заказчику поставлять только ДЛЛ с добавленными или обновленными функциями и дергать их оттуда по ID. Как при этом будет выглядеть вызов функции по ID c параметрами упакованными в текстовую строку.
Проект MSVC++, MFC.
Спасибо.
...
Рейтинг: 0 / 0
28.05.2005, 19:49
    #33089147
Землекоп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Существует ли механизм вызова функций из DLL по ID ?
А чем не устраивает

hLibrary = LoadLibrary("My.dll");
if(hLibrary){
...
Рейтинг: 0 / 0
28.05.2005, 19:58
    #33089149
Землекоп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Существует ли механизм вызова функций из DLL по ID ?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
typedef int ( * lpFunc1)(int);
lpFunc1 Func1;
HINSTANCE hLibrary = LoadLibrary("My.dll"); // Load the DLL now

    int x =  3 ;
    double y =  2 . 3 ;
    int a;
    
    
    if (hLibrary != NULL)
	{
             Func1 =  (lpFunc1)GetProcAddress(hLibrary, "MyFunction");
             if (Func1 != NULL)
             a = ((Func1)(x ));
	}
lib в это случае не нужен. Перелинковывать программу при добавлении функции нет нужды.
...
Рейтинг: 0 / 0
28.05.2005, 22:15
    #33089195
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Существует ли механизм вызова функций из DLL по ID ?
Что-то мне сразу IDispatch припомнился, там как раз функции по айдишнику вызываются, а параметры передаются как массив VARIANTов. На эту шнягу написано дофига всего-всего и можно, кажись, добиться полной автоматики этого дела. Если интересно, ффтыкай в OLE Automation, COM.
------------------
- А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm
...
Рейтинг: 0 / 0
28.05.2005, 22:16
    #33089197
gogo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Существует ли механизм вызова функций из DLL по ID ?
Спасибо за ответ.
Если я правильно Вас понял, имея в БД таблицу с именами вызываемых из ДЛЛ функций "MyFunc1",...., "MyFuncN", то при помощи Вашего механизма

Func1 = (lpFunc1)GetProcAddress(hLibrary, "MyFunc1");
if (Func1 != NULL)
a = ((Func1)(x ));

можно вызывать эти функции из ДЛЛ указывая их строковые имена ?
...
Рейтинг: 0 / 0
28.05.2005, 22:21
    #33089199
Землекоп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Существует ли механизм вызова функций из DLL по ID ?
gogoможно вызывать эти функции из ДЛЛ указывая их строковые имена ?

Именно так. В MSDN есть примеры.Главное правильно описать указатель на функцию и ее аргументы.
...
Рейтинг: 0 / 0
30.05.2005, 11:03
    #33090130
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Существует ли механизм вызова функций из DLL по ID ?
авторЕсть движок на VC++ у заказчика на площадке, который в зависимости от ситуации на объекте реального времени вызывает ту или иную функцию. Количество функций постоянно возрастает и уже перевалило за вторую сотню.
есть опасность пуститься в другую крайность - процедурное программирование вместо ООП .
______________________________________________
Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде!
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Существует ли механизм вызова функций из DLL по ID ? / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]