2024-12-21 10:04:04 +08:00
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
|
|
#include <windows.h>
|
|
|
|
|
|
#include <string>
|
|
|
|
|
|
using namespace std;
|
|
|
|
|
|
|
|
|
|
|
|
extern "C"
|
|
|
|
|
|
{
|
|
|
|
|
|
#include "Lua.h"
|
|
|
|
|
|
#include "LuaLib.h"
|
|
|
|
|
|
#include "lauxlib.h"
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
#define LUA_GLUE extern "C" int
|
|
|
|
|
|
extern "C"
|
|
|
|
|
|
{
|
|
|
|
|
|
typedef int (*LuaFunctionType)(struct lua_State* pLuaState);
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// <20>̱<EFBFBD><CCB1><EFBFBD> <20><><EFBFBD>ϰ<EFBFBD> <20><><EFBFBD><EFBFBD>~
|
|
|
|
|
|
#define LUA_DELEGATE LuaDelegate_Singleton()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//--------------------------------------------------------------------------//
|
|
|
|
|
|
// Class Name: CLuaDelegate
|
|
|
|
|
|
//
|
|
|
|
|
|
// Author : <20><><EFBFBD>ѱ<EFBFBD>
|
|
|
|
|
|
//
|
|
|
|
|
|
// Desc: <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̽<EFBFBD> <20>븮<EFBFBD><EBB8AE>~~
|
|
|
|
|
|
//--------------------------------------------------------------------------//
|
|
|
|
|
|
class CLuaDelegate
|
|
|
|
|
|
{
|
|
|
|
|
|
private:
|
|
|
|
|
|
lua_State* m_pLuaState;
|
|
|
|
|
|
void (*m_pErrorHandler)( const char* pError );
|
|
|
|
|
|
|
|
|
|
|
|
// <20>̱<EFBFBD><CCB1><EFBFBD><EFBFBD>̴<EFBFBD>.
|
|
|
|
|
|
CLuaDelegate(void);
|
|
|
|
|
|
|
|
|
|
|
|
// <20>ؽ<EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> ã<><C3A3> <20><><EFBFBD>쿣 <20><><EFBFBD>̳ʸ<CCB3> <20><><EFBFBD><EFBFBD>(lub)<29><> ã<>ƺ<EFBFBD><C6BA><EFBFBD>.
|
|
|
|
|
|
void _ConvertProperFileExt( IN OUT string& strFileName );
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
~CLuaDelegate(void);
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
|
|
|
|
|
|
|
|
|
|
|
|
//#if defined (_DEBUG) | (DEBUG)
|
|
|
|
|
|
#if defined (_DEBUG)
|
|
|
|
|
|
void StartDebugConsole( HINSTANCE hInst );
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
bool RunScript( const char* pFileName );
|
|
|
|
|
|
bool RunString( const char* pCommand );
|
|
|
|
|
|
const char* GetErrorString( void );
|
|
|
|
|
|
bool AddFunction( const char* pFunctionName, LuaFunctionType pFunc );
|
|
|
|
|
|
const char* GetStringArgument( int iNum, const char* pDefault = NULL );
|
|
|
|
|
|
double GetNumberArgument( int iNum, double dDefault = 0.0 );
|
|
|
|
|
|
void PushString( const char* pString );
|
|
|
|
|
|
void PushNumber( double dValue );
|
|
|
|
|
|
|
|
|
|
|
|
// <20>۷ι<DBB7> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
double GetNumber( const char* pVarName );
|
|
|
|
|
|
const char* GetString( const char* pVarName );
|
|
|
|
|
|
|
|
|
|
|
|
// <20>۷ι<DBB7> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
void SetNumber( const char* pVarName, double dNumber );
|
|
|
|
|
|
void SetString( const char* pVarName, const char* pString );
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>̺<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|
|
|
|
|
int GetTable( const char* pTableName );
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>̺<EFBFBD><CCBA><EFBFBD> Ű&<26><> <20><><EFBFBD> <20>ִ´<D6B4>.
|
|
|
|
|
|
void AddToTable( int iTableIndex, const char* pStrKey, const char* pStrValue );
|
|
|
|
|
|
void AddToTable( int iTableIndex, const char* pStrKey, lua_Number NumericValue );
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD>̺<EFBFBD><CCBA><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Top <20><> <20>ִٰ<D6B4> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
|
|
|
|
|
|
void GetField( const char* pStrKey, /*IN OUT*/ string& strValue );
|
|
|
|
|
|
lua_Number GetField( const char* pStrKey );
|
|
|
|
|
|
|
|
|
|
|
|
void SetErrorHandler( void(*pErrorHandler)(const char* pError) );
|
|
|
|
|
|
|
|
|
|
|
|
lua_State* GetLuaState( void );
|
|
|
|
|
|
|
|
|
|
|
|
friend CLuaDelegate& LuaDelegate_Singleton( void );
|
|
|
|
|
|
};
|