Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Переименовать экспортируемые методы в mingw 
:(
    Опции темы
SABROG
Дата 30.1.2008, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: нет
Всего: 91



Предположим я экспортирую из dllки следующие методы/классы/данные:

Код

EXPORTS
    _Z5ExeFnPc @1
    _ZN10TestClass2C1Ev @2
    _ZN10TestClass2C2Ev @3
    _ZN10TestClass2D0Ev @4
    _ZN10TestClass2D1Ev @5
    _ZN10TestClass2D2Ev @6
    _ZN9TestClassC1EPcS0_ @7
    _ZN9TestClassC2EPcS0_ @8
    _ZN9TestClassD0Ev @9
    _ZN9TestClassD1Ev @10
    _ZN9TestClassD2Ev @11
    _ZTV10TestClass2 @12 DATA
    _ZTV9TestClass @13 DATA


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

Тоже самое наблюдается и у exe файла (в таблице импорта?), который использует все это.

Я собираю и dllку и exe файл сам, и хочу не меняя исходников (.cpp, h.), чтобы имена импортируемых и экспортируемых данных стали скажем такими:

Код

EXPORTS
    A
    B
    C
    D
    E
    F
    G
    H
    J
    K
    L
    M
    N


Есть ли у компилятора gcc (mingw) такая возможность ?

---

С помощью Alias'ов можно:

//file.def
Код

EXPORTS
    _A_ = _Z5ExeFnPc


Тогда в exe будет вызываться "_A_", не смотря на то, что в .dll'ке будет написано "_Z5ExeFnPc". Т.е. вызов идет не по имени. А как сделать еще и так, чтобы в dllке экспорт имени тоже был как "_A_". Опять же плохо, что надо вручную имя задавать, но в любом случае не будет проблемой написать свой скрипт, который будет автоматом менять названия в .def файле.
---
Самый простой вариант который я пока нашел это:

Код

#define ExeFn A
IMPORTINGDLL_API void ExeFn(char * lpszMessage);


Тогда код будет читаемым, а в экспорте вместо ExeFn будет: "_Z1APc"


Это сообщение отредактировал(а) SABROG - 30.1.2008, 17:48


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | GNU toolchain | Следующая тема »


 




[ Время генерации скрипта: 0.0399 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.