0

尝试将 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);
}
4

2 回答 2

2

除了标头之外,所有这些代码都是 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 项目中)。

于 2012-01-24T23:47:07.497 回答
1

您是否尝试过 Objective-C++ 模式?将您的.m/.cpp文件重命名为.mm

于 2012-01-24T23:42:41.047 回答