Здравствуйте, Аноним, Вы писали:
А>пока устраивает, уже посмотрел. (_Init@4)Т.е. если я правильно понял, в независимости от компилира extern "C" заставит сделать именно такие имена? (например если кто в Делфи делает, есди это возможно, или в Билдере)
Категорически
НЕТ.
Указанное имя специфично исключительно для Microsoft C/C++. У борланда extern "C" __stdcall был вообще без какого-либо манглинга (для его линейки C/C++, скорее всего и для билдера то же самое).
С Delphi вообще отдельная песня. Сей продукт никакого отношения к C/C++ компиляторам не имеет, и все их законы на него не распространяются. Короче, делфа экспортирует имя один в один.
DJ>>>.def файл сгенерил, НО как его использовать то?
R>>Тоже вариант. Если компилируешь в среде Visual C++, просто подключи его к проекту. Иначе передавай его в опции линкера /def:myfile.def.
А>дык, в том то и дело, что динамически надо, что-то типа плаг-инов.
Уважаемый, вы о чем? Виталик говорит о
компиляции, а вы?
А>c COM и CORBA и все такое не очень охота разбираться, да и навороты не нужны.
Мама дорогая! Plugin's topic revisited!!!
Все что нужно, так это одна единственная экспортируемая функция, в которую передается структура, первым полем которой будет признак версии (у MS эту роль выполняет поле размера передаваемой структуры). В эту структуру плагин запишет адреса всех входов своего API и глобальных данных (последнее — при необходимости). Эта структура будет для базового экзешника эквивалентом секции импорта плагина.
Другой вариант — эта структура формируется самим плагином, и указатель на нее возвращается его функцией инициализации.
P.S. Я хоть в тему ответил?