我听说可以在iPhone(Objective C)项目中使用C ++ Code,我想使用一个用C ++编写的加密库。但是,该库使用的是使用构造函数的C ++类型结构,我无法正确使用它。
Struct看起来像这样:
struct SBlock
{
//Constructors
SBlock(unsigned int l=0, unsigned int r=0) : m_uil(l), m_uir(r) {}
//Copy Constructor
SBlock(const SBlock& roBlock) : m_uil(roBlock.m_uil), m_uir(roBlock.m_uir) {}
SBlock& operator^=(SBlock& b) { m_uil ^= b.m_uil; m_uir ^= b.m_uir; return *this; }
unsigned int m_uil, m_uir;
};
完整来源可在此处获取:http://www.codeproject.com/KB/security/blowfish.aspx
解决这个问题的最简单方法是什么? 我已经阅读了关于在苹果开发者网站上使用c ++代码的文章,但这并没有多大帮助。
答案 0 :(得分:6)
这绝对是可能的,并且技巧非常简单:当您要在Objective-C ++应用程序中使用C ++代码时,请将文件命名为 .mm 而不是<强> .M 强>
因此,如果您有YourViewController.h
和YourViewController.m
,请将后者重命名为YourViewController.mm
。它将导致XCODE使用C ++编译器而不是C编译器和Objective-C ++代码。
YourViewController.mm:
- (void) yourMessage {
// will compile just fine and call the appropriate C++ constructor
SBlock sb(1,1);
}
答案 1 :(得分:3)
只需将.m文件的文件扩展名更改为.mm并包含C ++标头即可。哇,我打字太慢了,哈哈。