gpt4 book ai didi

objective-c - 我如何将我的 objc 程序与 objc++ 库连接起来?

转载 作者:搜寻专家 更新时间:2023-10-30 19:42:06 27 4
gpt4 key购买 nike

我有一个 objc 程序,我想使用一个用 objc++ 编写的小部件(即 https://launchpad.net/scintilla-cocoa )。我该怎么做?基本上我想要一个新的窗口 Controller 对象与这个 objc++ 库接口(interface)来定义一个 scintilla 文本编辑器小部件。简单地创建一个新的“objc 类”并从那里访问库会生成一堆与 C++ class 关键字等相关的错误。

提前致谢

最佳答案

因为是我让您陷入使用 Scintilla 的麻烦(希望是有益的 :-)),所以我来了。


假设我们创建了一个名为 ppScintillaEditorScintillaView 子类。该文件应具有 .mm 扩展名(例如 ppScintillaEditor.mm)

代码大概是这样的……

界面

#import "Scintilla/ScintillaView.h"

@interface ppScintillaEditor : ScintillaView
{
// your iVars
}

// your properties / methods / whatever

现在,至于实现部分,请记住放置一些初始化方法以正确设置 View (如伴随 Scintilla-cocoa 的示例;我指的是测试项目)


旁注:当然,您可以在 ScintillaView 类之上创建子类、类别或其他任何内容,这在很大程度上取决于您的需要 - 我,对于例如,创建一个单独的类别只是为了在那里分组一些 ScintillaView 特定命令(迟早,您会注意到对于一些更高级的 Scintilla 操作,尽管它在那里,但可能需要一些抛光对 cocoa 更友好一点,所以你开始吧……)


现在,最后但并非最不重要的......

解决“与 C++ 类关键字等相关的错误”,正如我在其他视频中对您的评论的回应所展示的那样,你所要做的就是:

  • 转到项目的build设置
  • Apple LLVM 编译器 3.0 - 预处理
  • 选项预处理器宏
  • 添加到调试发布:

    SCI_NAMESPACE SCI_LEXER

就是这样。 :-)


提示:上面的内容是由 Scintilla 定义的,以避免 C 和非 C 元素之间的冲突,就像上面一样......所以,它所需要的只是通知预处理器和其余部分被照顾....

关于objective-c - 我如何将我的 objc 程序与 objc++ 库连接起来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10266622/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com