2010-12-09 8 views
3

iPhone (Objective C) 프로젝트에서 C++ 코드를 사용할 수 있다고 들었으므로 C++로 작성된 암호화 라이브러리를 사용하고 싶습니다. 그러나 라이브러리는 생성자를 사용하는 C++ 유형의 구조체를 사용합니다.iPhone 응용 프로그램과 함께 C++ 구조체 사용

구조체는 다음과 같습니다

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++ 코드 사용에 관한 기사를 읽었지만 그다지 도움이되지 못했습니다.

답변

6

그것은 확실히 가능하고 트릭은 매우 간단 이다 : 당신의 이름, 당신의 목표 - C++ 응용 프로그램에서 파일 대신 하는 .m.mm를 C++ 코드를 사용하려고 할 때.

따라서 YourViewController.hYourViewController.m 인 경우 이름을 YourViewController.mm으로 바꿉니다. XCODE는 Objective-C++ 코드와 함께 C 컴파일러 대신 C++ 컴파일러를 사용하게됩니다.

YourViewController.mm :

- (void) yourMessage { 
    // will compile just fine and call the appropriate C++ constructor 
    SBlock sb(1,1); 
} 
+0

글쎄, 나는 cpp 클래스의 이름을 mm로 변경하려고 시도했다. 여전히 .h 파일에 오류가 발생했습니다. 그러나, 나는 당신이 내가 C++ 코드를 포함하는 파일의 이름을 바꾸어야한다고 말하려고한다고 생각한다. 내가 그것에 대해 생각할 때 이것은 결국 의미가 있습니다. 시도해보고 알려줄 것입니다. 감사. –

3

그냥 .mm하도록하는 .m 파일의 파일 이름 확장자를 변경하고 C++ 헤더를 포함한다. 와우, 나는 너무 느리게 타이핑한다.

관련 문제