我想在Windows上使用MSVC 6(retro!)构建一个共享库(DLL),并且我需要解决一个特殊的链接问题。我的共享库必须访问一些全局状态,由加载应用程序控制。如何控制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做这个;我们的自动构建基础设施使用makefile来驱动MSVC。如果我省略了一些可以更容易回答问题的内容,请发表评论,我会尽快更新。
我应该包括那个;我在共享库中的声明都有。在帖子中更新。 – 2008-10-29 17:14:57