跳转到内容

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

华夏公益教科书