跳轉到內容

Futurebasic/語言/參考/庫

來自華夏公益教科書,自由的教科書

"庫名稱"

庫是儲存在系統資料夾的擴充套件資料夾或編譯應用程式資料夾中的例程。透過 FB 的標準工具箱分配機制訪問庫。庫可以拖放到專案視窗中,幷包含在編譯的應用程式中。

第一個語法: "庫名稱" 告訴 FB 開始使用來自 庫名稱 的工具箱呼叫。每次只能訪問一個庫。當使用 工具箱工具箱 FN 設定工具箱語句後,使用第二個語法返回到預設庫。

命令是一種建立到預編譯庫連結的機制。建立庫的人(蘋果的庫最常見)或用什麼語言編寫的庫並不重要。它只是一個包含子例程的檔案。庫的建立者通常會提供一組函式呼叫,這些函式可以在開啟庫後使用。這些函式中的每一個都透過 工具箱工具箱 FN 命令提供給你的 FB 應用程式。

示例: CD 示例:PPC 共享庫示例

以下示例已經是 FB 標頭檔案的一部分,不需要輸入。這裡只作為示例提供。

"QuickTimeLib"

工具箱 FN EnterMovies = OSErr `0x7001,0xAAAA 工具箱 ExitMovies `0x7002,0xAAAA 工具箱 FN GetMoviesError = OSErr `0x7003,0xAAAA

檢查可用庫命令 執行 語句後,您可能希望確定某個特定例程是否可用。以下示例顯示瞭如何實現這一點。您的 CD 上包含一個用 C 編寫的庫的原始碼示例。我們簡單的共享庫建立了一個名為 SharedBeepNTimes 的工具箱呼叫。

"共享庫" 工具箱 SharedBeepNTimes(WORD) `0xA9FF

DIM result,err,connID&,MainAddr&, symAddr& DIM symClass`,symClassFill`,symCount&,msg$,i

PRINT "*** 獲取與共享庫的連線 ***"

err = FN GetSharedLibrary("共享庫",¬   _"pwpc",0x0005,connID&, MainAddr&, msg$)

LONG IF err   PRINT "*** 沒有名為該名稱的庫條目... ***" XELSE   err = FN CountSymbols(connID&, symCount&)   PRINT "*** 檢查條目。 ***"   PRINT "找到";symCount&;" 個總計。"   FOR i=0 TO symCount&-1     symClass` = 0     err = FN GetIndSymbol(connID&,i,msg$,¬         symAddr&,symClass`)     PRINT i,"名稱:'";msg$;"'",     PRINT "地址:";HEX$(symAddr&),"類:";symClass`   NEXT   err = FN FindSymbol(connID&, "SharedBeepNTimes",¬     symAddr&, symClass`)   LONG IF err     PRINT "*** 沒有名為該名稱的程式碼條目... ***"   XELSE     PRINT "*** 找到條目,正在嘗試... ***"     SharedBeepNTimes(1)// CALL sharedLibrary     PRINT "完成..."   END IF END IF

FBTestForLibrary; 編輯器手冊中的 "確保 PPC 工具箱的有效性";工具箱函式;TBALIAS

華夏公益教科書