我正在尝试将 Lua 绑定到手动映射的模块上。正如您在此处清楚地看到的那样。
他们在他们的 API 上使用 C++ 或 C 异常并且没有办法避免它们。我想知道是否有可能在我的模块上启用该异常。
我曾尝试按如下方式修补这些行:
#define LUAI_THROW(L,c) c->throwed = true
#define LUAI_TRY(L,c,a) \
__try { a } except(0xDEADBEEF) { if ((c)->status == 0 && ((c)->throwed == true)) (c)->status = -1; }
#define luai_jmpbuf int /* dummy variable */
/* chain list of long jump buffers */
struct lua_longjmp {
struct lua_longjmp *previous;
luai_jmpbuf b;
volatile int status; /* error code */
bool throwed;
};
并使用 /EHa 编译了我的模块,但它没有按预期工作。