Проблемы с def файлом

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

  1. nobodyzzz

    nobodyzzz New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2005
    Сообщения:
    475
    имеется def файл вида
    Код (Text):
    1. LIBRARY "VssApiWrapper"
    2. EXPORTS
    3.     ??0CVssJetWriter@@QAE@XZ = ordinal7 @7
    4.     ??0CVssWriter@@QAE@XZ = ordinal8 @8
    5.     ??1CVssJetWriter@@UAE@XZ = ordinal9 @9
    6.     ??1CVssWriter@@UAE@XZ = ordinal10 @10
    7.     ?AreComponentsSelected@CVssWriter@@IBG_NXZ = ordinal11 @11
    8.     ?CreateVssBackupComponents@@YGJPAPAVIVssBackupComponents@@@Z = ordinal12 @12
    9.     ?CreateVssExamineWriterMetadata@@YGJPAGPAPAVIVssExamineWriterMetadata@@@Z = ordinal13 @13
    10.     ?CreateVssSnapshotSetDescription@@YGJU_GUID@@JPAPAVIVssSnapshotSetDescription@@@Z = ordinal14 @14
    11. ...
    но после компиляции в dll в экспорте имена почемуто имеют вид
    Код (Text):
    1. ??0CVssJetWriter
    2. ??0CVssWriter
    3. ??1CVssJetWriter
    4. ??1CVssWriter
    т.е. символы начиная с @@ обрубаются, как с этим боротся?
     
  2. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    А если имя обернуть в ""?

    http://msdn.microsoft.com/en-us/library/h41zhe21(VS.80).aspx
     
  3. nobodyzzz

    nobodyzzz New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2005
    Сообщения:
    475
    Там говорится про имена файлов, а не про имена функций. В любом случае это не помогает =(
     
  4. Arthur

    Arthur New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2007
    Сообщения:
    494
    nobodyzzz
    А вам обязательно нужен .def файл?
    Может просто использовать модификатор __declspec(dllexport) и компоновать без DEF файла?
     
  5. nobodyzzz

    nobodyzzz New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2005
    Сообщения:
    475
    Arthur
    не вариант с __declspec(dllexport) не совсем подходит для моей задачи
    временно решил заменой @ в def файле на ^ + небольшой скрипт, который заменяет ^ в экспортах на @ в Post-build events =)))