VC ++ предотвращает все украшения имен символов

Я работаю над DLL, которая будет использоваться с другого языка (так что не нужно импортировать библиотеки и включать заголовки dll), используя конвекцию вызовов _stdcall. Проблема в том, что VC ++, кажется, всегда украшает экспортируемые символы каким-то образом. Все ссылки, которые я видел, говорят, что используется extern «C», но это все еще оставляет мне знак подчеркивания в начале и @ плюс число после экспортируемого имени.

Худший момент - это автоматические средства загрузки расширений DLL в файл целевой язык, по сути, делает "func_name = GetProcAddress (dll," func_name ")", поэтому использование недекорированного имени GetProcAddress не работает, а при использовании декорированного имени он жалуется на недопустимое имя переменной (@ не разрешено) :(

Как я могу экспортировать что-то в VC ++ без каких-либо украшений имен?

extern "C" __declspec(dllexport) int __stdcall test(int x, const char *str);

dumpbin.exe

00011366 _test @ 8 = @ ILT + 865 (_test @ 8)

8
задан agf 29 September 2011 в 14:42
поделиться