将现有的C++框架链接到Objective-C + Cocoa应用程序
Linking existing C++ framework to an Objective-C + Cocoa application
我为学校的窗户开发了一个工作框架,其中包含窗户工作所需的所有类和方法。这是几个类的一部分的示例,我不打算将所有代码粘贴到此处。
Widget.h (基类)
class Widget {
public:
Widget(...);
...
virtual std::string getLabel() const;
virtual void setLabel(const std::string label);
...
private:
std::string m_label;
Widget* m_parent;
Measure m_position; // struct: int x, int y
Measure m_size;
};
按钮.h
class Button : public Widget {
public:
Button(...);
...
virtual void setTarget(Widget* target);
...
private:
Widget* m_target;
};
LineEdit.h
class LineEdit : public Widget {
public:
LineEdit(...);
...
virtual void setMaximumLenght(int lenght);
...
private:
int m_maximumLength;
};
等等...这些都只是头文件,我已经在相应的.cpp
文件中实现了方法等。
我这段时间的功课是在Objective-C和Cocoa中为Mac的OS-X实现它们,因此标头在OS-X和Windows中都可以工作。我可以自己休息,但我想知道如何在 OS-X 中使用这些头文件,因此只需将实现重写为.m
文件,而不是.cpp
。有什么想法吗?我是这个东西的新手。
可以将.cpp文件和 .m 文件合并到同一个项目中,这意味着如果您的实现没有任何特定于 Windows 的代码,则可以将其添加到项目中并进行编译。 还有目标C++的概念。 有了它,您可以使用C++和Objective-C在.mm
文件中编写代码,并在它们之间进行调用。
另一方面,如果你真的需要在Objective-C中实现所有内容,你需要重写标头来定义Objective-C类(而不是C++类)以及重写实现。
相关文章:
- 如何将数组从Objective-C发送到C++函数
- 在 Objective-C++ -> EXC_BAD_ACCESS Error 中使用"new"关键字
- Mac Snow Leopard 上的 Qt 5.3.2:ld:在架构x86_64 [clang、Objective-C
- 创建跨平台 C++ 触摸管理器.在 c++ 中传递 Objective-c 对象涉及代码
- C++对象作为 Objective-C++ 属性
- 将.cpp文件中的数据传递给Objective c ViewController
- 为什么这个来自 Objective-C++ 的dynamic_cast在调试中成功但在发布时失败?
- Objective-C 如何使用向量对?
- 在 Objective-C 和 Swift 之间委托问题
- Objective-C C++ 包装器 类型错误的不完整定义
- EXC_BAD_ACCESS Xcode,来自我的 Objective-C++ 和 swift 桥接标头中的 C++ 包
- 在 Objective-C++ 中应用于__weak指针时,通过关键字推导类型"auto"规则是什么?
- 为什么必须在Objective-C中对Uikit或Cocoa进行编码
- 将现有的C++框架链接到Objective-C + Cocoa应用程序
- 在Cocoa/Objective-C项目中包含C++代码时'class'未知类型名称
- 在Objective-C++中处理Cocoa setAction消息
- Cocoa Objective-C:使用c++对象作为NSDictionary键
- 使用cmake构建库时,Objective-C++文件未链接到Cocoa
- 用CMake链接到cocoa库(c++与Objective-C混合)
- cocoa touch -- 测试对象是否是 objective-C 对象