lua调用C++写的DLL实现“热更新”

本文介绍了游戏服务器中通过Lua脚本桥接C++ DLL以实现热更新的方法。主要思路是利用C++作为程序主框架,业务逻辑以C++ DLL形式存在,两者间通过Lua进行交互。在运行时,只需替换Lua脚本,即可切换DLL,达到更新业务逻辑的目的。文中提供主程序和Lua脚本的示例,演示了如何在不重启服务的情况下完成更新。
摘要由CSDN通过智能技术生成

原创作品,转载请注明来源是CSDN:http://blog.csdn.net/relar/article/details/38084689

开发游戏服务器往往有“热更新”的需求,就是在不停止服务程序的情况下,对服务程序进行升级。这里采用lua脚本桥接C++的模式。程序主框架用C++,程序的业务逻辑也是C++(具体的是C++写的DLL),这两者之间用LUA脚本语言进行桥接。当程序运行时,只要改变LUA脚本,即可以选择使用不同的DLL,以实现业务逻辑的升级更新。

上演示代码,代码分为三部分,第一部分是主程序:

//本例演示了lua调用DLL

#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#include <malloc.h>
#include <conio.h>
#include "include\lua.hpp"



int _tmain(int argc, _TCHAR* argv[])
{

	int global_var1 = 0;
	printf("这个程序演示Lua调用C++的Dll:\n");
	lua_State *pLuaState = luaL_newstate(); //也可以用lua_open();
	luaL_openlibs(pLuaState);

	if (luaL_dofile(pLuaState, "main2.lua"))
  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值