C语言中主程序到DLL的变量共享
我是DLL编程新手,我正在尝试用一些DLL开发一个程序,这些DLL使用主应用程序(.exe)中定义的单个全局变量 简而言之,我不明白如何在不同的DLL中导入全局变量并允许它们修改它 我尝试使用此代码在DLL的.h中声明资源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; 这个程序不能
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形式)。