| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Алиас к имени функции |
| Автор: marcusmae 2.11.2007, 22:03 | ||||||
| Привет, друзья, кто знает, как задавать алиасы к именам функций? Допустим, у меня есть dll, экспортирующая функцию :
Эту dll нужно использовать в проекте на другом языке. Но некоторые компиляторы, например, Фортрана, умеют линковать только функции, именованые только строго UPPERCASE или строго lowercase, то есть описанная выше функция не прилинкуется. Можно, конечно, наплодить вызовов типа :
но как-то это диковато, правда? |
| Автор: MAKCim 2.11.2007, 22:40 |
нет другого выхода нет |
| Автор: marcusmae 2.11.2007, 22:49 | ||
Подумал, что это как-то делается, поскольку, как я понял, имя дающееся функции, это - фактически и есть алиас к Ordinal Value - функции в библиотеке нумеруются, и, видимо, возможно вызывать их прямо по этому номеру. Более того, некоторые функции иногда не имеют символьного имени, а только Ordinal Value!
Всё-таки, создание обёрток - это туча лишних джампов... Жаль. Спасибо. |
| Автор: marcusmae 2.11.2007, 23:28 | ||||
Хмммм... Ну да. Как в http://rsdn.ru/article/devtools/bcbdll.xml старинной статье RSDN рассматривалась подобная проблема, только в применении к ведущим андерскорам :
Надо думать, две функции имеют 1) разные псевдонимы 2) разные номера Ordinal (!), но для обеих в таблице установлен одинаковый адрес смещения. То есть, это действительно делается, но с использованием .def-файлов. Уже решение. А, может, можно без них? Помнится, производители компиляторов очень хвалились, что вот, def-файлы больше не нужны. |
| Автор: dumb 3.11.2007, 06:35 |
| экспорты с редиректом/форвардом - не самые распространенные, и даже можно сказать - довольно экзотические случаи, посему затягивать их в синтаксис imho особого смысла не имеет. пользуй def'ы - наиболее простое и лаконичное решение. |
| Автор: archimed7592 3.11.2007, 10:15 |
| marcusmae, бери пример с Микрософта: как они делают алиас GetWindowText на GetWindowTextA или GetWindowTextW? Макросами (шутка... так делать не нужно) |
| Автор: marcusmae 3.11.2007, 12:57 | ||
Ооо, да! В общем, более-менее ясно, что делать. Спасибо за Ваши ответы |