我正在尝试使用 MSVC 6(复古!)在 Windows 上构建一个共享库(DLL),我有一个特殊的链接问题需要解决。我的共享库必须访问一些全局状态,由加载应用程序控制。
概括地说,我所拥有的是:
应用程序.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。如果我省略了一些可以更容易回答问题的内容,请发表评论,我会尽快更新。