Проблема с експортом функ. dll Visual C++ 6

Тема в разделе "LANGS.C", создана пользователем XshStasX, 21 ноя 2008.

  1. XshStasX

    XshStasX New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2008
    Сообщения:
    991
    есть такая библиотека(исходный код прикреплен к вопросу)в ней есть экспортируемая функ но вместо того что она называлась MAINFUNC ...Ida показывает что она называться ?MAINFUNC@@YGPADPADPAUTInfo@@@Z (и по такому имени она вызывается а по MAINFUNC нет((((()................... как cделать чтоб она вызывалась по MAINFUNC????
     
  2. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    Это манглинг. http://en.wikipedia.org/wiki/Name_mangling
    Юзай extern "C".
     
  3. XshStasX

    XshStasX New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2008
    Сообщения:
    991
    неа не помогло, теперь так функ називаеться
    MAINFUNC@8
     
  4. meduza

    meduza New Member

    Публикаций:
    0
    Регистрация:
    15 авг 2008
    Сообщения:
    212
    потому что, MAINFUNC следует stdcall конвенции. @8 - это размер аргументов в байтах. Если объявишь MAINFUNC как cdecl, то @8 исчезнет, но тогда, скорее всего, добавится подчеркивание (_MAINFUNC).
     
  5. nobodyzzz

    nobodyzzz New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2005
    Сообщения:
    475
    используй def файл
     
  6. XshStasX

    XshStasX New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2008
    Сообщения:
    991
    тоесть мож показать как??? подробно а еще лутше пример прикрепи к сообщению...
     
  7. s0larian

    s0larian New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2004
    Сообщения:
    489
    Адрес:
    Крыжёпполь
    Это __stdcall calling convention.
     
  8. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.426
    XshStasX
    Код (Text):
    1. LIBRARY mydll
    2. MAINFUNC
    3. Hook_Mouse
    сохранить как mydll.def и добавить в свойствах проекта линкеру опцию: /DEF:mydll.def