使用DLL在進程間共用記憶體_如何在多進程中用共用DLL

來源:互聯網
上載者:User

共用資料DLL允許進程以類似於Windows 3.1 DLL共用資料的方式訪問讀寫資料,多個進程都可以對該共用資料DLL進行資料操作,達到共用資料的目的。在WIN32中為建立共用記憶體,必須執行以下步驟:
首先建立一個有名的資料區。這在Visual C++中是使用data_seg pragma宏。使用data_seg pragma宏必須注意資料的初始化:
#pragma data_seg("MYSEC")
char MySharedData[4096]={0};
#pragma data_seg()
然後在使用者的DEF檔案中為有名的資料區設定共用屬性。
LIBRARY TEST
DATA READ WRITE
SECTIONS
.MYSEC READ WRITE SHARED

這樣每個附屬於DLL的進程都將接受到屬於自己的資料拷貝,一個進程的資料變化並不會反映到其他進程的資料中。

在DEF檔案中適當地輸出資料。以下的DEF檔案項說明了如何以常數變數的形式輸出MySharedData。
EXPORTS
MySharedData CONSTANT
最後在應用程式(進程)按外部變數引用共用資料。
extern _export"C"{char * MySharedData[];}
進程中使用該變數應注意間接引用。
m_pStatic=(CEdit*)GetDlgItem(IDC_SHARED);
m_pStatic->GetLine(0,*MySharedData,80);

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.