1
LuaBind를 사용하여 Lua로 간단한 클래스를 내보내려고합니다. 코드를 두 사이트에서 가져 와서 대략 같은 방법으로 보여 주지만 여전히 실패하고 있습니다. LuaBind를 사용하여 C++ 클래스를 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 때 :: 모듈은 다음과 같은 런타임 오류가 발생하고 디버그 모드에서 다른 정보가 없습니다 :가 0xc0000005 : 루아 Playground.exe에서 0x690008f5에서
처리되지 않은 예외를 액세스 위반.
더 구체적으로 Luabind 커뮤니티입니다. 메일 링리스트에 오신 것을 환영합니다 : https://lists.sourceforge.net/lists/listinfo/luabind-user –
무슨 말을하는거야? – Overv
링크 된 블로그 게시물의 내용입니다. –