gpt4 book ai didi

c - 访问dll中的全局变量

转载 作者:可可西里 更新时间:2023-11-01 10:55:19 35 4
gpt4 key购买 nike

如何在 dll 中访问在我的应用程序的 main() 函数中初始化的全局变量?

我的全局变量包含一个关键部分对象,我需要将其锁定在一个 dll 中。

我已经尝试在我的应用程序中导出它并使用它在 dll 中导入

__declspec(dllexport)__declspec(dllimport)但是当我尝试锁定关键部分时,我得到一个运行异常,这让我认为我的 dll 访问的变量没有正确初始化。

dll 在运行时使用 LoadLibrary 加载。

如有任何提示,我们将不胜感激。

最佳答案

通常从应用程序访问 DLL 中的变量,但看起来您正试图以相反的方式进行访问。而且您从应用程序导出并在 DLL 中导入的方式似乎有点老套。

如何在您的 DLL 中创建一个函数,该函数从您的应用程序中获取指向临界区对象的指针并将其存储在 DLL 自己的全局变量中?

动态链接库:

CRITICAL_SECTION *gCS;

__declspec(dllexport) void MyDLL_SetCS(CRITICAL_SECTION *cs) {
gCS = cs;
}

应用:

CRITICAL_SECTION cs;
// initialize cs here
MyDLL_SetCS(&cs);

然后 DLL 可以在需要时使用它自己的指针副本。

关于c - 访问dll中的全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4451920/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com