gpt4 book ai didi

c++ - 使用 LuaBind 将 C++ 类导出到 Lua 时发生访问冲突

转载 作者:太空宇宙 更新时间:2023-11-04 12:26:51 25 4
gpt4 key购买 nike

我正在尝试使用 LuaBind 将一个简单的类导出到 Lua。我从两个网站获取了代码,这两个网站显示的方法大致相同,但仍然失败。

// Default headers
#include <iostream>
#include <string>

// Lua headers
extern "C" {
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
}

#include "luabind/luabind.hpp"

// Sample class
class NumberPrinter
{
public:
NumberPrinter( int number ) : m_number( number ) {}
void print() { std::cout << m_number << "\n"; }

private:
int m_number;
};

int main() {
// Create Lua state and load sample file
lua_State *luaState = lua_open();
luabind::open( luaState );

// Set up bind to number class
luabind::module( luaState ) [
luabind::class_<NumberPrinter>( "NumberPrinter" )
.def( luabind::constructor<int>() )
.def( "print", &NumberPrinter::print )
];

// Use the class in Lua
luaL_dostring( luaState,
"Print2000 = NumberPrinter(2000)\n"
"Print2000:print()\n"
);

// Clean up Lua state
lua_close( luaState );

getchar();
return 0;
}

运行该代码时,luabind::module 导致以下运行时错误,并且在 Debug模式下没有其他信息:

Unhandled exception at 0x690008f5 in Lua Playground.exe: 0xC0000005: Access violation.

最佳答案

我鼓励您从 this website 中的二进制文件和示例 VS2008 解决方案着手。 .它具有您尝试运行的完全相同的示例代码(减去拼写错误)并且它在我的机器上运行良好。如果它仍然不起作用,您将需要 Lua 社区的帮助。可能需要小型转储来帮助他们对此进行诊断,仅异常消息是不够的。

关于c++ - 使用 LuaBind 将 C++ 类导出到 Lua 时发生访问冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1957914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com