close

C++ 編寫 FLL 來增強 VFP 的功能


要創建一個 FLL 檔:

1
啟動 VC++ 6.0
2
從檔功能表中選擇新建,並選擇工程選項卡中的 Win32 Dynamic-Link Library

 
然後在選項卡右邊的工程文字方塊中輸入工程名稱(我們就輸入 first 好了)
 
按一下位置文字方塊右邊的三點按鈕來選擇我們的工程所在的位置,我們就選擇 C: 根目錄就行了。注意:
 
在我們的示例中,我們選擇工程所在位置是 C: 根目錄,工程名稱是 first, 這樣, C++ 將自動為我們創建一個  C:\first 目錄,並為我們生成專案必須的檔。
 
在選擇了所在位置和項目名稱後,按一下確定按鈕。
3
C++ 問我們要創建何種類型的 DLL 時,選擇第二個選項“A simple DLL project”並按一下完成按鈕。再按一下一次確定來完成嚮導生成。

好了,C++ 已經為我們生成了一個簡單的 DLL 項目了,讓我們進一步地設置它以符合我們的要求。
首先,從 VFP 6 的主目錄下的 API 目錄下複製 PRO_EXT.H WINAPIMS.LIB 兩個檔到我們的 c:\first 目錄中。(注意:如果用 VFP 8.0 帶的這兩個檔,在編譯時會發生錯誤:不能找到庫 atls.lib).
C++ 中,從查看功能表中選擇工作區來查看我們的專案檔案,按一下 FileView 選項卡(注意:該選項卡在頁框的下部)。逐個點開各節點,你會看到在 Source File 節點下有兩個文件:first.cpp StdAfx.cpp,用以下內容完全覆蓋 first.cpp 的內容。


//=================================================
#include "pro_ext.h"

void myfirstfunction(ParamBlk* parm)
{
    _Execute("wait window \x022 Hello, world!\x022 AT 25,75");
}

FoxInfo myFoxInfo[] = {
       {"FIRSTFUN",(FPFI) myfirstfunction,CALLONLOAD, ""},
};

extern "C" {
       FoxTable _FoxTable =
       {
               (FoxTable *) 0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo
       };
}
//=================================================

完成後不要忘記按一下工具列上的 Save All 按鈕來保存你的修改。
接下來讓我們設置連接選項:

1
工程功能表中選擇設置功能表項目,按一下 C/C++ 選項卡,並從分類下拉下拉式列示方塊中選擇“Precompiled Headers”然後複選自動使用預補償頁眉選項。

2
在該頁下面的 “Project Options” 內容的最後面加一行內容:
/MD

3
按一下 Link 選項卡,在物件/庫模組文字方塊中列出的庫模組的最後加上 WINAPIMS.LIB
注意,各模組庫之間要有空格分開,換句話說,你加入的 WINAPIMS.LIB 應該與前面的模組名之間保持一個空格。


4
在此頁上面的輸出檔案名文字方塊中,修改輸出檔案名從 Debug/first.dll Debug/first.fll

最後,讓我們來生成我們的 first.fll 文件
:
編譯功能表中選擇構建 first.fll”或按 F7 來構建我們的 first.fll。如果沒有什麼錯誤的話,螢幕下面的視窗中會顯示:


--------------------Configuration: first - Win32 Debug--------------------

first.Fll - 0 error(s), 0 warning(s)

這表明我們的 first.fll 已經生成於 c:\first\debug 目錄中。

測試我們的 fll 檔:

進入 VFP, 在命令視窗打入:

set library to c:\first\debug\first.fll

如果一切正常,則會在螢幕的中部顯示一條 Hello, World! 的信息。
請注意,如果你在修改和調試你的 fll,請一定記住及時發佈來帶參數的 set library to 命令來從記憶體中清除載入的 fll, 否則,在 C++

就不能重建這個 fll.

好了,這個簡單的 fll 需然後沒有做什麼事,但我們已經知道如何創建一個簡單的 FLL 的具體步驟,今後我們將繼續討論其它一些我們必須要掌握的東西。


今天就到這裡。

未完待續......

 

 

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 hsiung03 的頭像
    hsiung03

    hsiung.博格 ERP軟體

    hsiung03 發表在 痞客邦 留言(0) 人氣()