永发信息网

怎样将EXE中的全局变量共享给DLL使用

答案:2  悬赏:50  手机版
解决时间 2021-02-28 00:26
  • 提问者网友:富士山上尢
  • 2021-02-27 00:30
怎样将EXE中的全局变量共享给DLL使用
最佳答案
  • 五星知识达人网友:爱难随人意
  • 2021-02-27 01:34
dll文件中可以使用全局变量的; DLL文件又称“应用程序拓展”,是软件文件类型。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。
全部回答
  • 1楼网友:酒者煙囻
  • 2021-02-27 03:13
全局共享数据 #pragma data_seg ("shareddata") hwnd sharedwnd=null;//共享数据 #pragma data_seg() 编译选项加入 /section:shareddata,rws ============================ 用pragma设置共享数据: #pragma data_seg("mysec") char myshareddata[4096]={0}; #pragma data_seg() 然后在用户的def文件中为有名的数据区设定共享属性。 library test data read write sections .mysec read write shared 在应用程序(进程)按外部变量引用共享数据。 extern _export"c"{char * myshareddata[];} 进程中使用该变量应注意间接引用。 m_pstatic=(cedit*)getdlgitem(idc_shared); m_pstatic->getline(0,*myshareddata,80); ===================================== //global.h in dll #pragma once #include "stdafx.h" #pragma data_seg(".shared") int g_nexport = 33333; cstring g_strexport = "dllexport"; #pragma data_seg() #pragma comment(linker,"/section:.shared,rws") 如果dll中定义了共享变量a,exe1载入dll,另外一个exe2也载入dll,则exe1里的dll 和 exe2里的dll将可以访问同一个a;而不是exe1和dll之间共享,也不是exe2和dll之间共享。 另外,exe要访问dll里的全局变量,则dll必须把变量export出来,exe再import,import有隐式或显式
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯