Как указать символы / EXPORT в проекте VC ++ в Visual Studio? - PullRequest
3 голосов
/ 24 августа 2009

У меня есть проект makefile, который собирает и связывает DLL, используя компилятор командной строки cl.exe, который включен в VC ++ Express (бесплатный) инструмент. Теперь я хочу преобразовать этот файл makefile в проект Visual Studio.

DLL на самом деле не C ++; это все написано на C.

DLL экспортирует небольшое количество символов, функций, которые вызываются другими программами, связанными с DLL. Я считаю, что для создания этой DLL мне нужно включить оператор /EXPORT:Foo в командной строке ссылки для каждого экспортируемого символа.

Как мне сделать то же самое в Visual Studio 2008? Как указать параметры компоновщика для экспорта определенного небольшого набора функций из DLL?

Ответы [ 4 ]

4 голосов
/ 24 августа 2009

См. Первую пару подразделов Экспорт из DLL , где написано

Вы можете экспортировать функции из DLL используя два метода:

Создать файл определения модуля (.def) и использовать файл .def при сборке DLL. Используйте этот подход, если хотите экспортировать функции из вашей DLL порядковый, а не по имени.

Используйте ключевое слово __declspec (dllexport) в определении функции.

3 голосов
/ 24 августа 2009

Вам нужно будет использовать «Дополнительные параметры» в свойстве компоновщика «Командная строка» и явно добавлять параметры.

Я думаю, что большинство людей используют атрибуты __declspec(dllexport) вместе с макросами, чтобы сделать его более удобным и сделать declspec версией dllimport в заголовках для клиентов библиотеки.

2 голосов
/ 04 мая 2010

или вы можете попробовать:

cl /LD hellodll.cpp /link /EXPORT:func01 /EXPORT:func01

для функций, которые не указаны "_declspec(dllexport)"

1 голос
/ 24 августа 2009

Я не вижу опции GUI для этого, так что вы можете просто добавить его вручную в командной строке под Linker в свойствах проекта. Я думаю, что большинство людей используют для этого файл DEF.

...