используйте опцию -vu compiler, чтобы не ставить префикс подчеркивания к экспортируемым именам символов в bcc

омпания предоставляет третьей стороне DLL, которая предоставляет им функции API, которые они могут использовать для подключения к нашему приложению. DLL была написана на VC9, а функции API использовали соглашение о вызовах по умолчанию VC (__cdecl). Третья сторона создала свое приложение вокруг этого интерфейса.

Теперь мне поручено написать обновленную версию DLL. Мы хотим, чтобы у DLL был точно такой же интерфейс, что и у старого, чтобы их можно было использовать взаимозаменяемо. К сожалению, наша среда разработки теперь CodeGear RAD Studio 2007, поэтому я должен написать DLL, используя это.

Лучшим решением было бы заставить как старые, так и новые библиотеки DLL экспортировать свои функции как __stdcall. После этого стороннее приложение может быть повторно связано с ожиданием функций __stdcall, и все будут счастливы. К сожалению, по разным причинам это вряд ли произойдет.

Кроме того, я могу объявить функции в моей DLL как __cdecl. Сторонний ожидает функции __cdecl, так что это может показаться хорошим решением. К сожалению, CodeGear настаивает на добавлении подчеркивания ('_') к имени функций __cdecl. Это означает, что стороннее приложение должно будет сделать условный вызовMyApiFunction(...) или же_MyApiFunction(...)в зависимости от того, какую DLL они используют.

Итак, мой вопрос, как я могу экспортировать функции API из моей новой DLL таким образом, чтобы они были __cdecl ине с префиксом подчеркивания ('_')?

Ответы на вопрос(3)

Ваш ответ на вопрос