Как конвертировать C ++ в Objective C в Xcode для компиляции Box2D? - PullRequest
0 голосов
/ 25 января 2012

Попытка использовать Box2D для приложения для Iphone, но не знаю, как преобразовать следующий файл заголовка C ++ в Xcode Цель C ... Кто-нибудь, пожалуйста, помогите мне? Заранее спасибо!

#include <Box2D/Common/b2Settings.h>
#include <cstdlib>
#include <cstdio>
#include <cstdarg>

b2Version b2_version = {2, 2, 1};

// Memory allocators. Modify these to use your own allocator.

void* b2Alloc(int32 size){
return malloc(size);
}

void b2Free(void* mem)
{
   free(mem);
}

// You can modify this to use your logging facility.

void b2Log(const char* string, ...)

{
   va_list args;
   va_start(args, string);
   vprintf(string, args);
   va_end(args);
}

Ответы [ 2 ]

2 голосов
/ 25 января 2012

За исключением заголовков, весь этот код - C, а не C ++. Например, malloc / free являются подпрограммами C. Ближайшие подпрограммы в C ++ будут new / delete.

Если нет другого кода, который вы нам не показываете, вы можете просто и безопасно указывать на заголовки C, вместо этого:

#include <stdlib.h>   /* was #include <cstdlib> */
#include <stdio.h>    /* was #include <cstdio>  */
#include <stdarg.h>   /* was #include <cstdarg> */

... и этот кусок кода должен компилироваться как C (и, следовательно, в рамках проекта Objective-C).

1 голос
/ 25 января 2012

Вы пробовали режим Objective-C ++?Переименуйте ваши .m / .cpp файлы в .mm

...