Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C语言中主程序到DLL的变量共享_C_Windows_Dll - Fatal编程技术网

C语言中主程序到DLL的变量共享

C语言中主程序到DLL的变量共享,c,windows,dll,C,Windows,Dll,我是DLL编程新手,我正在尝试用一些DLL开发一个程序,这些DLL使用主应用程序(.exe)中定义的单个全局变量 简而言之,我不明白如何在不同的DLL中导入全局变量并允许它们修改它 我尝试使用此代码在DLL的.h中声明资源 extern "C" __declspec(dllexport) varType varName; 但它似乎不起作用,事实上不同的DLL使用不同的结构 也使用 extern "C" __declspec(dllimport) varType varName; 这个程序不能

我是DLL编程新手,我正在尝试用一些DLL开发一个程序,这些DLL使用主应用程序(.exe)中定义的单个全局变量

简而言之,我不明白如何在不同的DLL中导入全局变量并允许它们修改它

我尝试使用此代码在DLL的.h中声明资源

extern "C" __declspec(dllexport) varType varName;
但它似乎不起作用,事实上不同的DLL使用不同的结构

也使用

extern "C" __declspec(dllimport) varType varName;
这个程序不能正常工作

允许在主进程和DLL之间共享资源的正确方法是什么


我知道从主进程到DLL共享资源是不对的,但我不得不这样做。此外,我不能使用接收指向要修改的结构的指针的函数。

虽然可以这样做,但正确的解决方案是编写setter/getter函数。不应该存在需要跨多个DLL共享意大利面条全局的场景。在一个程序中使用全局变量已经够糟糕的了。是的,我知道,但不幸的是,我必须以这种方式实现函数int,因为调用程序使用这种(糟糕的)行为,我无法更改它。无论如何,我尝试应用setter/getter模式,避免共享resurce。谢谢。这是特定于操作系统的。最好避免使用DLL。需要DLL的主要情况是,您希望出售库(以DLL形式)。