Decoda1.17编译实录

首先从git上获取最新的代码,无法FQ的用户可以使用我百度网盘好的压缩包Decoda压缩包下载百度网盘地址提取密码: 5hbj

生成工程项目需要用到premake,压缩包里已经有了,使用方法可以自己help


现在开始使用premake生成VS2013的工程项

premake4.exe --file=F:\Document\decoda-master\premake4.lua --os=windows --platform=x32 vs2013


生成build工程文件夹,


然后就可以使用VS2013打开Decoda.sln 进行工程加载了

分别编译Fronted和LuaInject,然后在Bin目录下就能得到Decoda.exe的可执行程序了

-----------------------------华丽的分隔线------------------------------------------

由于我们项目用到的lua脚本都用的是gb2312的格式进行保存的,这样在使用Decoda进行调试的时候无法对保存的中文变量值进行查看,只能对源代码进行稍微的修改

通过对源代码的解读可以知道从内存中解析出来的内容是可读的,但是编码是GB2312,在使用wx进行解析时用的是utf8编码就导致出问题了,自己根据公司项目的情况进行编码的转换,具体改动的地方有2个,一个是WatchCtrl,还有一个是tooltip,在显示的时候需要把UTF8的编码转位GBK进行显示,否则还是乱码

由于改动是在公司内部进行修改的,这里就不贴代码了,提示修改的具体位置:WatchCtrl::UpdateItem  , MainFrame::OnCodeEditDwellStart

-----------------------------华丽的分隔线------------------------------------------

程序运行截图

然后使用Decoda进行挂接调试


-----------------------------华丽的分隔线------------------------------------------

C++代码,和lua代码,

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

#include <iostream>
#include <string>

using namespace std;

int main(int argc, char** argv)
{
	int tmp;
	lua_State* L = lua_open();
	luaL_openlibs(L);
	printf("input anything to run lua file.\n");
	cin >> tmp;

	luaL_dofile(L, "addstr.lua");
	lua_getglobal(L, "add");
	lua_pushstring(L, "中");
	lua_pushstring(L, "文");
	lua_call(L, 2, 1);
	string ret_str = lua_tostring(L, -1);
	lua_pop(L, 1);
	printf("The result str is :%s", ret_str.c_str());
	cin >> tmp;
	return 0;
}

function add(str1, str2)
	str1 = str1 or ""
	str2 = str2 or ""
	local ret_str = str1..str2
	return ret_str
end

 工程项目属性设置注意事项截图,需要添加lua的依赖


-----------------------------华丽的分隔线------------------------------------------

文件路径截图


应该就这么多注意事项了

编码问题可以参考  : 推荐编码问题解读

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值