Непонятки с экспортом

Тема в разделе "LANGS.C", создана пользователем _DEN_, 20 фев 2009.

  1. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    Экспортирую из длл две функции

    Код (Text):
    1. class __declspec(dllexport) client_wrapper
    2. {
    3. ...
    4.     response* request(procedure const& proc); // Раз
    5. ...
    6. };
    7.  
    8. __declspec(dllexport) response* reqest(client_wrapper*, procedure const& proc); // Два
    В проекте, где юзается dll, первая линкуется, а вторая - unresolved external symbol.

    Открываю таблицу экспорта dll и вижу:

    Код (Text):
    1. 4  .10005F40 ?reqest@mssql@xxx@@YAPAUresponse@12@PAVclient_wrapper@12@ABUprocedure@12@@Z // Раз
    2. 5  .10005F10 ?request@client_wrapper@mssql@xxx@@QAEPAUresponse@23@ABUprocedur // Два
    Вижу что замангленное имя второй функции обрезано. В чем дело?

    PS. MSVS 9.0, Hiew.
     
  2. deLight

    deLight New Member

    Публикаций:
    0
    Регистрация:
    26 май 2008
    Сообщения:
    879
    extern "C" в объявлении ф-ции.
    p.s. или все-таки имена требуется манглить?
     
  3. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    deLight

    На счет С в курсе. Хочу замангленые.
     
  4. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    _DEN_
    Похоже на баг, пиши в мелкософт.
     
  5. s0larian

    s0larian New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2004
    Сообщения:
    489
    Адрес:
    Крыжёпполь
    deLight, посмотри в "depends" - он умеет demangling делать.

    P.S. кста, попробуй изменить название второй ф-ции, а то в зависимости от реализации этого mangling можешь получить совпадение...