1. 程式人生 > >編寫windows程式中的“.def”檔案

編寫windows程式中的“.def”檔案

    在孫鑫老師的VC視訊第19講有提到,定義一個動態連結庫的“共享節”,需要在工程中手動新增一個“.def”檔案,然後在這個檔案中定義一個共享節,.def中的語句如下:

SEGMENTS

mysec READ WRITE SHARED               //將資料節 mysec 設定為  可讀、可寫、共享。

   或者,在.def中新增如下語句,可以將一個動態連結庫中的某些全域性符號匯出的時候符號名不變,如:

LIBRARY DLL
EXPORTS                        //本項的 EXPORTS的用法可以在MSDN中查詢EXPORT得到
add                            //編譯dll檔案的時候,如果發現原始檔中有符號名與這裡的符號名相同,則
subtract                       //使用這個符號名作為原始檔中符號的 匯出符號名

上面兩種都是.def檔案的典型用法。

    在“深入淺出MFC”的第一章有提到,每個windows程式(.exe或者是.dll) 都需要一個模組定義檔案,將 模組名稱、程式段、資料段 的記憶體特性、模組堆(heap)大小、堆疊(stack)大小、所有callback函式名稱等等登記下來。

    但在使用VC IDE開發程式的時候,不是每次都需要特別準備 .def 檔案,因為新程式的 模組定義檔案 的每個部分都有預設值。一下是一個典型的模組定義檔案的例項:

NAME                                     Generic

DESCRIPTION                     'Generic Sample'

EXETYPE                               WINDOWS

STUB                                      'WINSTUB.EXE'

CODE                                     PRELOAD DISCARDABLE

DATA                                       PRELOAD MOVEABLE MULTIPLE

HEAPSIZE                              4096

STACKSIZE                            10240

EXPORTS                               

                                                  MainWndProc   @1

                                                  AboutBox            @2

    在編寫一個windows程式的時候,可否自己指定 模組定義檔案 的每一項的數值呢?<未完 待續>