• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 74, 文章 - 0, 評論 - 26, 引用 - 0
            數據加載中……

            如何共享 DLL 中的所有數據 微軟support

            概要

            Win 32 動態鏈接庫 (DLL) 默認,這意味著使用 DLL 的每個應用程序獲取它自己的 DLL 的數據的副本的情況下使用實例數據。 但是,就可以共享 DLL 數據之間所有使用該 DLL 的應用程序。

            如果您需要共享僅部分 DLL 數據,Microsoft 建議創建一個新的節和而共享它。 如果您想共享的所有 DLL 靜態數據,非常重要做兩件事情:
            第一次,DLL 必須使用 C 運行時的 DLL 版本 (例如 Crtdll.lib 或 Msvcrt.lib)。 請參閱您的產品文檔更多有關使用 C 運行時 DLL 中。

            注意: Crtdll.lib 不再 SDK,從 Windows NT 3.51 開始的一部分。 上次發布年 4 月 1995 年上的 MSDN 3.5 SDK。 Win 32 現在要求用戶指定的由他們自己的編譯器 vender 提供的 C 運行時 LIBs 他們自己的版本。
            第二個,您需要指定.data 和.bss 共享。 通常,這樣.def 文件的"SECTIONS"部分中。 例如:
               SECTIONS
            .bss READ WRITE SHARED
            .data READ WRITE SHARED
            如果您要使用 Visual C++ 32-bit Edition,您必須指定此使用鏈接器上的部分開關。 例如:
            link -section:.data,rws -section:.bss,rws
            只有靜態數據被共享。 用對作為 GlobalAlloc() 和 malloc() 這樣的 API / 函數的調用動態分配的內存是仍然特定于調用進程。

            系統試圖加載每個進程中相同的地址處共享的內存塊。 但是,如果塊不能將加載到相同的內存地址,系統將共享的分區映射到一個不同的內存地址。 仍在共享內存。 請注意該共享節內部指針無效在這種情況下并不能放共享各節中。

            更多信息

            C 運行時使用全局變量。 如果 CRT 是靜態與該 DLL,鏈接這些變量將在 DLL 的所有客戶端之間共享并將最有可能導致的異常 c 0000005。

            您要同時指定.data 和.bss 為共享,因為它們每個保存不同類型的數據。 .data 部分包含初始化的數據,.bss 部分保存未初始化的數據。

            for sharing in DLL all data one reason is to have in between Win32 DLL (running on Windows NT) and Win32s consistent behavior (running on Windows 3.1). when running on Win32s,32-bit DLL shares among all of that use DLL processes its data。

            請注意不需要共享所有數據 Win 32 和 Win32s 之間的行為完全相同。 DLL 可用于將變量存儲為實例數據在 Win 32 線程本地存儲 (TLS)。

            for additional information,please see following article in Microsoft Knowledge Base:
            109620 (http://support.microsoft.com/kb/109620/EN-US/) 在一個 Win 32 中創建實例數據 DLL

            這篇文章中的信息適用于:
            Microsoft Win32 Application Programming Interface 當用于
                Microsoft Windows NT 4.0
                Microsoft Windows NT 3.51 Service Pack 5
                Microsoft Windows NT 4.0
                Microsoft Windows 95
                Microsoft Windows 98 Standard Edition
                the operating system: Microsoft Windows 2000
                the operating system: Microsoft Windows XP

            回到頂端

            關鍵字: 
            kbmt kbdll kbhowto kbipc kbkernbase KB109619 KbMtzh

            posted on 2008-10-28 15:07 井泉 閱讀(723) 評論(0)  編輯 收藏 引用 所屬分類: c code

            亚洲国产天堂久久综合网站| 久久综合精品国产二区无码| 91性高湖久久久久| 国产精品热久久无码av| 久久亚洲AV成人无码国产| 丁香五月网久久综合| 五月丁香综合激情六月久久| 久久久受www免费人成| 9191精品国产免费久久| 国产一区二区久久久| 亚洲综合精品香蕉久久网97| 亚洲国产精品一区二区三区久久 | 久久AV无码精品人妻糸列| 国产精品一区二区久久精品无码 | 91精品观看91久久久久久| 日韩精品久久久久久久电影| 久久亚洲精品无码播放| 久久99精品久久久久子伦| 国产高潮国产高潮久久久| 人妻丰满?V无码久久不卡| 色综合合久久天天给综看| 国产精品一久久香蕉国产线看| 色诱久久久久综合网ywww| 国产精品亚洲综合专区片高清久久久| 亚洲午夜久久久久妓女影院| 亚洲国产精品无码久久久蜜芽| 久久精品国产清自在天天线| 久久er国产精品免费观看8| 少妇被又大又粗又爽毛片久久黑人| 99热成人精品热久久669| 国产成人精品综合久久久| 奇米影视7777久久精品人人爽| 久久久久亚洲AV无码专区桃色| 久久精品国产99久久久香蕉| 久久久久亚洲精品天堂久久久久久 | 无码人妻少妇久久中文字幕 | 亚洲精品国精品久久99热一| 久久AV无码精品人妻糸列| 亚洲中文久久精品无码ww16| 久久综合狠狠综合久久| 狠狠色丁香久久综合五月|