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