MS Visual C ++: экспорт символа с `@` - PullRequest
0 голосов
/ 15 декабря 2018

Я пытался экспортировать функцию как символ, который содержит @, используя как файл DEF, так и #pragma comment(linker, "/export:NEW_NAME=OLD_NAME"), но, к сожалению, кажется, что при использовании DEF-файла интерпретируется @как дать порядковый номер.

#pragma comment(linker, "/export:foo@bar=foo")
void foo() { }

Когда я запускаю полученный бинарный файл через dumpbin /exports, я получаю:

ordinal hint RVA     name
      1    0 00001000 foo = foo (...)

Это кажется связанным, но на фактический вопрос так и не был дан ответ: Visual C ++: экспорт оформленного имени функции в файл определения


Справочная информация

Фактическая цель - предоставить функцию F (здесь foo()) под альтернативой, __stdcall -декорация, имя S (здесь foo@bar).Проблема в том, что старая библиотека L1 У меня нет доступа к исходному коду, так как мне нужен этот символ S , который технически все еще предоставляется, но как функция F .Реализация S , а затем цепной вызов F нетривиальна, так как мне нужно было бы позвонить F изнутри S , но взаголовок F существует функция S , но она больше не экспортируется, поэтому при компиляции у меня будет конфликтующее определение.

Лучше всего простосоздать псевдоним от S до F .

...