우선 제가 만들어본 소스코드를 올려봅니다.
///소스코드
class Test
{
public:
public:
int m_result;
char* m_id
};
int WinMain(……)
{
/// 루아바인드 초기화
………………
///클래스를 루아에 등록 module(luaVM) [
///선언된 Test 클래스 객체 얻어오기
if (gt_Test1) {
}
///클래스를 루아에 등록 module(luaVM) [
class_<Test>("Test")
];
///선언된 Test 클래스 객체 얻어오기
lua_dofile(luaVM, "./use_class.lua");
luabind::object gt_ = luabind::get_globals(luaVM);
if (gt_Test1) {
Test a = object_cast<Test>(gt_Test1); ///* 클래스 객체를 얻는다.
MyPrint("ID %s, 합산결과 %d", a.m_id, a.m_result); ///설정된 데이터를 출력한다.
}
else
{
MyPrint("스크립트 파일에서 Test1 없다");
}
lua_close(luaVM);
궁금한점
1. 스크립트에 정보 설정한 클래스 객체를 얻오는 방법이 Test a = object_cast<Test>(gt_Test1); 맞는지요
2. 위에 있는 걸로는 제가 원하는 결과가 제대로 출력 안됩니다.
스크립트 파일 MyAdd(10, 20) 하면 원하는 값은 30인데 출력하면 이상한 값이 출력되는 이유를 알고 싶습니다.
3. 또 한가지는 스크립트 파일에 직관적으로 클래스 멤버 변수에 값을 어떻게 넣는지도 궁금합니다.
4. 여러 Object정보가 설정된 스크립트 파일을 게임이나 여타 다른 프로젝트에서 읽어 들여 소스코드에 객체를 생성할 때
어떠한 방법이 있을까요
즐거운 하루하루 보내시고요 잘 부탁 드리겠습니다.
ex) Test1 = Test()
이렇게 되어 있다면 소스코드에 스크립트 Object 검색 루틴에 class Test1, Test2, Test3, Test…. 이렇게 만들어 놓고
생성하고 써먹는 것도 쫌 이상한 것 같은데 뭐 좋은 방법 있으면 알려주셨으면 감사하겠습니다.
// Test1 정보설정
Test2 = Test()
// Test2 정보설정
Test3 = Test()
// Test3 정보설정
…………









![[http]](/wiki/imgs/http.png)
