在Mac OS X上使用Lazarus/FreePascal的蓝牙技术

3
有人在Mac OS X上使用过Lazarus或FreePascal的蓝牙功能吗?虽然有一个蓝牙单元,但目前仅支持Linux。
现有单元的信息: http://wiki.freepascal.org/Bluetooth 我计划增强它以支持Mac OS,但如果有人已经编写了任何用于Mac OS上的BlueTooth代码,则知道这一点会很好,以避免重复工作。
另一方面,如果您已经使用XCode访问蓝牙,那么您使用了哪些库?我相信我可以通过打开一些蓝牙应用程序来使用XCode分析器发现这一点。
注意:Mac OS X似乎没有使用Linux所拥有的BlueZ库,因此我认为解决方案并不像更改库路径那样简单。相反,它具有位于/System/Library/Frameworks/IOBluetooth.framework的IOBluetooth“框架”。
看起来如下:
在kaikei.ocn.ntt.com:IOBluetooth.framework文件夹下,运行"file *"命令可以得到以下输出结果:
CodeResources:XML文档文本
Headers:目录
IOBluetooth:具有3个体系结构的Mach-O通用二进制文件
IOBluetooth(针对x86_64架构):Mach-O 64位动态链接共享库x86_64
IOBluetooth(针对i386架构):Mach-O动态链接共享库i386
IOBluetooth(针对ppc7400架构):Mach-O动态链接共享库ppc
Resources:目录
Versions:目录
另外,我认为如果有人已经完成了这项工作,我可能会在Google上找到它...... 但是以防万一我错了,请回复并让我知道。
澄清一下:我以前已经为普通共享库创建过绑定(例如sqlite3),但从未为“框架”创建过绑定。如果没有人使用过FreePascal中的MacOS蓝牙框架,那么一般情况下如何从FreePascal使用框架函数的建议将不胜感激。(而且通常我正在移植的函数都是基于C语言的,而不是Obj-C,因此我不确定如何在FPK中声明Obj-C方法,尽管我相信如果我继续搜索,我肯定能找到一些示例)。
1个回答

3
主要翻译Mac OS X框架中C头文件的svn仓库是http://svn.freepascal.org/svn/macosxintf/trunk。不时地,FPC版本与最新托管版本同步。请注意,该存储库中的文件(在MPPInterfaces子目录中)以一般格式提供,可自动转换为FPC、GPC或CodeWarrior Pascal版本。

要生成FPC版本,请使用“make fpcpinterfaces”,并在Build/FPCPinterfaces文件夹中查找结果。

要翻译新的头文件,请从已签出的macosxintf存储库内执行以下操作:   ./Scripts/Convert.pl /System/Library/Frameworks/IOBluetooth.framework/Headers/IOBluetooth.h FORCE MPPInterfaces

之后,您仍然需要编辑生成的文件以添加/删除单位,并清理一些其他未由自动翻译过程处理的内容。完成后,您可能希望在bugs.freepascal.org上提交已完成的单元的错误报告。

(注意:因为我没有注册,所以每篇帖子只能添加一个url,因此下一个url有点混乱,以避免限制)

您还可以订阅Mac Pascal列表(lists.sonic.net/mailman/listinfo/mac-pascal),并询问是否有人已经翻译了这些标题。

蓝牙框架确实还包含一些Objective-C标题。只有最新的FPC svn版本才支持Objective-Pascal,如FPC wiki所述(google FPC_PasCocoa)。您需要此支持才能与Objective-C进行接口。

在FPC的svn(svn.freepascal.org/svn/fpc/trunk/packages/cocoaint/utils/)中使用其他地方的脚本可能是翻译Objective-C最简单的方法。

您可能希望在上述Mac Pascal列表上请求帮助,因为所有维护上述翻译和翻译工具的人都已订阅。


谢谢您提供的信息!我之前不知道有MacPascal列表。 - Noah

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接