zoukankan      html  css  js  c++  java
  • DLL和EXE怎样共享全局变量?

    全局共享数据       
      #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有隐式或显式
    ===========================
    http://hi.baidu.com/shilyx/blog/item/2017dca29b1777accaefd0e1.html 全局共享变量初始化

  • 相关阅读:
    超参数调试、Batch正则化和程序框架
    优化算法
    深度学习的实用层面
    深层神经网络
    浅层神经网络
    一些实用的JavaScript代码
    mysql练习题1-41
    python 练习题(16-20)
    fiddler抓取https请求
    haproxy监控页面添加及参数简介(转)
  • 原文地址:https://www.cnblogs.com/gakusei/p/1397387.html
Copyright © 2011-2022 走看看