Я пытаюсь создать общую библиотеку (DLL) в Windows, используя MSVC 6 (ретро!), И у меня есть своеобразная проблема с каналом, которую мне нужно решить. Моя общая библиотека должна получить доступ к некоторому глобальному состоянию, контролируемому приложением загрузки.Как я могу контролировать, какие символы импортирует из приложения Windows DLL?
В широком смысле, что у меня есть это:
application.c:
static int g_private_value;
int use_private_value() {
/* do something with g_private_value */
}
int main (...) {
return shared_library_method();
}
shared_library.c:
__declspec(dllexport) int __stdcall shared_library_method() {
use_private_value();
}
(Обновлено - Я забыл __declspec(dllexport) int __stdcall
часть, но он находится в реальном коде)
Как настроить shared_library.dll так, чтобы он экспортировал shared_library_method
и импортировал use_private_value
?
Помните, что A) Я, как правило, программист unix и B), что я делаю это без Visual Studio; наша автоматическая инфраструктура сборки управляет MSVC с помощью make-файлов. Если я опускаю то, что облегчит ответ на вопрос, прокомментируйте, и я обнов его как можно скорее.
Я должен был включить это; мои объявления в общей библиотеке имеют это. Обновлено в сообщении. – 2008-10-29 17:14:57