Проблема с экспортом dll

Тема в разделе "LANGS.C", создана пользователем XshStasX, 22 авг 2010.

  1. XshStasX

    XshStasX New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2008
    Сообщения:
    991
    Есть проект (взят отсюда: http://www.microsoft.com/msj/0599/layereds...redservice.aspx )

    Суть такова нужно из файла SPI.CPP экспортировать функцию WSPStartup.
    Что не делал все равно не появляется она в экспорте.
    Сама функция также объявлена в заголовочном файле ws2spi.h .

    Код (Text):
    1. __control_entrypoint(DllExport)
    2. int
    3. WSPAPI
    4. WSPStartup(
    5.     IN WORD wVersionRequested,
    6.     __in OUT LPWSPDATA lpWSPData,
    7.     __in IN LPWSAPROTOCOL_INFOW lpProtocolInfo,
    8.     __in IN WSPUPCALLTABLE UpcallTable,
    9.     __inout OUT LPWSPPROC_TABLE lpProcTable
    10.     );
    То есть при подключении ws2spi.h и определении функции WSPStartup она должна сама экспортироваться.
    Но такого не происходит(..
    Если самому дописать в SPI.CPP

    То будет ошибка : error C2375: WSPStartup: переопределение; другая компоновка
    Проект приложил к теме, мож кто разберется в чем трабла.
     
  2. XshStasX

    XshStasX New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2008
    Сообщения:
    991
    Сотворил страшную вещь объявление в перенес свой h файл
    и так обьявил:
    Код (Text):
    1.  extern"C" __declspec(dllexport)
    2. int
    3. WSPAPI
    4. WSPStartup(
    5.     IN WORD wVersionRequested,
    6.     __in OUT LPWSPDATA lpWSPData,
    7.     __in IN LPWSAPROTOCOL_INFOW lpProtocolInfo,
    8.     __in IN WSPUPCALLTABLE UpcallTable,
    9.     __inout OUT LPWSPPROC_TABLE lpProcTable
    10.     );
    Функция то экспортируется но почему то под именем _WSPStartup@76
     
  3. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    XshStasX
    наверно параметров 76 байт )
     
  4. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    это "украшенное" имя... создайте def-файл)))

     
  5. XshStasX

    XshStasX New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2008
    Сообщения:
    991
    И как это высказывание решает проблему имени ?

    Большое спасибо) помогло!
    И не пришлось модифицировать ws2spi.h.
     
  6. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    XshStasX
    как размангалить тебе Rel сказал
    там случайно кроме размангаливания конвенцию вызова менять не надо?
     
  7. XshStasX

    XshStasX New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2008
    Сообщения:
    991
    C вызовами все ок).