一、Lua堆栈 要理解Lua和C++交互,首先要理解Lua堆栈。 简单来说,Lua和C/C++语言通信的主要方法是一个无处不在的虚拟栈。栈的特点是先进后出。堆栈索引的方式可是是正数也可以是负数,区别是:正数索引1永远表示栈底,负数索引-1永远表示栈顶。如图: 二、堆栈的操作 因为Lua与C/C++是通过栈来通信,Lua提供了C API对栈进行操作。 我们先来看一个最简单的例子: #includ
一是,隐式连结,用dll编译连结时生成的.h和.lib文件。可以直接调用.dll中的函数。 二是显式连结,不需要其它附加文件,用LoadLibrary和GetProcAdress()函数 一、关于调用方式: 1、静态调用方式:由编译系统完成对DLL的加载和应用程序结束时DLL卸载的编码(如还有其它程序使用该DLL,则Windows对DLL的应用记录减
转载 2024-03-04 05:39:59
553阅读
第二章从编译开始首先拿到Lua 5.1.2的源代码,解压缩到C:/Src.不要和我说你的C盘没有空间了;)这样,在SRC/lua-5.1.2/下面就会出现Lua的源码了。接下来,我们以右键->编辑打开etc/luavs.bat,这是Lua提供的在VS2003下面编译自身的批处理文件.我们的目标是根据此文件,制作VS2003的工程.首先,让我们看看这个文件的内容:cl /MD /O2 /W3
C#与Lua的交互主要是由Lua官方的提供的LuaInterface.dll库实现的。什么是LuaInterface LuaInterface包括两个动态链接库文件,一个是luaInterface.dll,在C#中操作Lua所必需的依赖文件一个是Luanet.dll,C#与Lua交互过程:   C# Call Lua :由C#文件先调用Lua解析器底层Luanet.d
转载 2024-05-07 08:15:15
406阅读
1.版本1.1vs版本vs20131.2lua版本lua5.1,用luaForWindow安装2.c调用lua2.1编写lua代码callLuaTest.luafunction add(a,b) return a+b; end function sub(a,b) return a-b; end然后把lua文件复制到项目目录下。2.2复制头文件vs创建控制台程序,在lua的安装目录
转载 2024-04-12 14:35:44
181阅读
前言DLL注入是我在大一的时候接触的一种技术,那时候还不懂,最近结合小程序详细的理解了一下。DLL注入是将代码注入到一个远程进程中,并让远程进程调用LoadLibrary()函数,从而强制远程进程加载一个DLL程序到进程中。而当DLL被加载时就会运行DLL中的DllMain()函数,所以就会为恶意代码的执行提供机会,而因为DLL本身是由感染后的进程加载的同时PE文件也并没有对系统进行过多的敏感操作
转载 2024-09-05 06:40:58
90阅读
.cpp //若没有在项目属性--库文件、依赖文件、包含添加。则添加一下路径 #pragma comment (lib,"lua5.1.lib") #include "stdafx.h" #include "lua.hpp" extern "C" { #include "lua.h" #includ
转载 2019-06-02 14:35:00
775阅读
2评论
Java如何和DLL一起编程      首先引用一篇文章,介绍一个简单的JNI的调用的过程。    JAVA以其跨平台的特性深受人们喜爱,而又正由于它的跨平台的目的,使得它和本地机器的各种内部联系变得很少,约束了它的功能。解决JAVA对本地操作的一种方法就是JNI。     JA
转载 2023-06-29 09:45:33
225阅读
很多人苦于lua脚本被别人破解导致整个游戏被他人抄袭而苦恼,现在来说说最近刚研究通的一种修改办法,可以加载自己加密过的脚本,而且又不会导致普通的lua脚本无法执行,这样既可以运行加密脚本也可以运行普通的脚本,这是多么爽的一件事情。好了接下来我直接给出我们需要修改的地方;打开文件loadlib.c这个文件我们可以看到有几个函数loader_Lua,loader_C等函数;我们可以仿一个 ,实现自己
转载 2024-03-06 01:25:39
47阅读
 Lua调用c++ dll文件的详解尽管网上类似的例子不少,但是对于很多新手来说,有些问题并没有说的那么详细直奔主题在此,我会列出我参考的文章,有些东西就直接复制的环境:Visual C++ 2008 Express Edition + Lua 1.5 + SciTE(lua编辑器) 下载 Visual C++ 2008 Express Edition + Lua ,下载后安装
转载 2024-03-01 09:38:49
74阅读
引言我见过相当多的用来说明在程序中如何使用从DLL中输出的class的代码,但这些方法都是通过隐式链接完成的。回忆一下DLL的概念,有两种方法可以使用DLL中输出的函数:一是在程序代码中简单地引用DLL中符号,这使得加载器在程序启动时隐式地加载(链接)所需的DLL,这就是众所周知的“隐式链接”。第二种方法就是在程序运行过程中显式地加载所需的DLL(使用LoadLibrary())并且显式地链接到需
转载 2024-03-26 07:47:08
72阅读
Howto:如何Module(模块)-----------------这一部分主要是翻译github上的document注意:如果您打算将模块加入LUCI整合之前,您应该阅读Module参考。本教程介绍如何编写自己的LUCI WebUI中的模块。在本教程中,我们假设您的luci安装目录lucidir(如果您目前使用的是安装版/usr/lib/LUA/LUCI),并假设你的luci安装经
转载 2024-04-16 15:52:46
37阅读
Q:“引用”和“引用计数”?A:“引用”既为对象的名字。比如a = {},名叫a的变量存储的值是一个”table”,”table”的名字是a;同时还可以说变量a存储着”table”的“引用”。 当“(强)引用”被创建时,对象的“引用计数”加1,只要对象的“引用计数”不为0,对象就不会被销毁,Lua的“垃圾回收系统”只回收那些“引用计数”为0的对象。Q:“强引用”和“弱引用”?A:当对象被创建时会
转载 2024-08-16 09:19:50
41阅读
学习lua将近半个月了,以前也了解过,只是没有实际运用的环境。现在将自己这半个月来的心得写下来。首先,要想在C++程序中作用lua脚本,必须包含相应的lua头文件,extern "C" { #include <lua.h> #include <lualib.h> #include <lauxlib.h> }因为lua是基于c的,所以要使变量和函数按照
转载 2024-02-27 19:54:32
89阅读
        公司所用的框架是skynet,是c-lua语言,有时lua效率不够,又有现成的大量的C++算法,所以我就有了研究一下lua调用C++的想法,以供不备之需,准备环境是windows7,vs2013,vscode,vscode插件-Lua Debug, Lua Debugger,EmmyLua,插件是方便调试开发用的,vscode对lu
转载 2024-05-29 11:02:49
220阅读
## 如何在Android中编写动态链接库(DLL) 作为一名经验丰富的开发者,我将会教你如何在Android中编写动态链接库(DLL)。这对于刚入行的小白来说可能会有些困难,但是通过本文的指导,你将能够成功实现这一目标。 ### 整个过程的步骤 下面是在Android中编写DLL的整个过程的步骤,你可以通过以下表格了解每个步骤的具体内容: | 步骤 | 内容 | | ------- | -
原创 2024-06-16 03:41:35
33阅读
# Java编写DLL的步骤和代码解析 ## 目录 1. 简介 2. DLL的定义 3. Java编写DLL的步骤 4. 代码实现 5. 总结 ## 1. 简介 本文将介绍如何使用Java编写DLL(Dynamic Link Library)文件。DLL是一种包含可供程序调用的函数和资源的库文件,它可以被多个应用程序共享,提供了代码复用和模块化的好处。 ## 2. DLL的定义 DLL文件是
原创 2023-08-06 13:38:36
654阅读
后卫大师教你进程注入 首先提一下,由于文章完全是我手写,所以打不了太多,请包含,由于我已经提供了源代码,所以我在这里详细讲一下理论,至于想看代码的下载代码就可以了。代码中关于注入的部分做了详细的注释。MFC界面部分的注释没有,(毕竟太肤浅了。)      好,言归正传。      所谓DLL注入,既把一个DLL文件放到目标进程中。 &n
转载 2024-08-29 12:18:31
90阅读
使用Lua编程,扩展外部接口时,不一定要编写lua专用的dll,使用系统的,或传统的动态链接库也可以,这样更具有通用性。基本用法:require("alien") --1.加载alien libc = alien.load("msvcrt.dll") -- 2.加载动态链接库 libc.puts:types("void", "string") -- 3.说明参数类型 libc.puts:t
转载 2024-02-23 21:37:46
79阅读
1、快速入门创建hello.lua文件,内容为print("hello");保存。执行命令lua helloworld.lua输出为:hello 2、LUA的基本语法lua有交互式编程和脚本式编程。交互式编程就是直接输入语法,就能执行。脚本式编程需要编写脚本文件,然后再执行。一般采用脚本式编程。(例如:编写一个hello.lua的文件,输入文件内容,并执行lua hell.lua即可)2
转载 2023-08-17 12:50:54
266阅读
  • 1
  • 2
  • 3
  • 4
  • 5