1

我有一个 VS2010 项目,它是一个从特定蓝牙设备获取数据的 Windows 应用程序。我要做的就是改变我的采集线程以发送它使用 OSC 采集的数据。

我花了很长时间尝试使用一个名为 LIBLO 的库,但它似乎使用 POSIX 风格的异步来运行。我花了更多时间尝试让 pthreads-win32 为我工作,这样我仍然可以使用这个库,但仍然没有运气。

我转而尝试使用 OSCPACK 库,我无法使用发行版中包含的批处理文件进行编译。我最终能够让我的 VS2010 项目识别该库,但我现在得到的只是链接器错误(LNK2019 和 LNK2001)。相关目录列在项目属性的“其他包含目录”中。我知道这应该很容易解决,但经过一天的挫折后,我束手无策。我习惯在 osx 中使用 xcode,所以在 VS2010 中很难完成任何事情。我需要给链接器额外的说明吗?

任何人都可以建议一个与 Windows/VS 兼容的简单、预构建的 OSC 库,或者我如何解决未解决的外部问题?

4

1 回答 1

2

OSC 是一个非常简单的协议,尤其是当您只需要发送传出的 OSC 消息而不关心接收(和解析)传入的 OSC 消息时。您可以做的一件事是简单地阅读规范并查看一些示例,然后编写您自己的函数,将 OSC 数据添加到指定格式的字节缓冲区中。这只是几个小时的工作。然后只需通过 UDP 套接字将该字符缓冲区发送出去,这也很简单。根据您的需要,尝试与第三方 OSC 库集成可能更容易(我同意这可能会令人沮丧,尤其是在 Windows 下)。

另一种可能性是使用 OSCPACK,但不要尝试单独构建它然后链接到生成的 DLL/LIB 文件,只需将必要的 OSCPACK .c 文件直接复制到您自己项目的源代码树中,然后将它们编译到您的可执行文件中编译自己的代码的方式。这将避免尝试让两个不同的构建系统一起工作时可能出现的任何烦人的构建/链接问题,它还可以让您完全控制 OSC 代码的(混蛋)副本......例如,如果你想要一个特定的OSCPACK 中的函数以不同的方式工作,您可以简单地修改该函数的副本。(如果你这样做,一定要清楚地表明代码不再是“库存”,以避免混淆......当然,尽量不要修改它以破坏与其他 OSC 使用的协议兼容性软件)

于 2012-03-11T19:38:34.210 回答