使用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阅读
一、Lua堆栈 要理解LuaC++交互,首先要理解Lua堆栈。 简单来说,LuaC/C++语言通信的主要方法是一个无处不在的虚拟栈。栈的特点是先进后出。堆栈索引的方式可是是正数也可以是负数,区别是:正数索引1永远表示栈底,负数索引-1永远表示栈顶。如图: 二、堆栈的操作 因为LuaC/C++是通过栈来通信,Lua提供了C API对栈进行操作。 我们先来看一个最简单的例子: #includ
用java调用C++DLL一直以来都是一个比较麻烦但又很常见的问题。我们知道,使用 JNI 调用 .dll/.so 共享类库是非常非常麻烦和痛苦的。如果有一个现有的 .dll/.so 文件,如果使用 JNI 技术调用,我们首先需要另外使用 C 语言一个 .dll/.so 共享库,使用 SUN 规定的数据结构替代 C 语言的数据结构,调用已有的   dll/so 中公布的函
转载 2023-07-11 10:25:09
115阅读
一是,隐式连结,用dll编译连结时生成的.h和.lib文件。可以直接调用.dll中的函数。 二是显式连结,不需要其它附加文件,用LoadLibrary和GetProcAdress()函数 一、关于调用方式: 1、静态调用方式:由编译系统完成对DLL的加载和应用程序结束时DLL卸载的编码(如还有其它程序使用该DLL,则Windows对DLL的应用记录减
转载 2024-03-04 05:39:59
553阅读
LuaC++交互初探之C++调用Lua自从学习了lua这个脚本语言之后,无时不想着将他与c/c++联系起来,看看他真正的威力。奈何水平有限,网上找的代码无论怎样都无法运行成功。我知道是我少了某一步但是又不知道到底少了什么,于是就在各大博客、网站、论坛不断的摸索测试。我也不知道花了多长时间。总之在今天测试成功了。我把我测试遇到的问题和解决过程贴出来供大家参考。lua环境的搭建 建议去网上下载lua
转载 2024-04-23 13:00:56
72阅读
第二章从编译开始首先拿到Lua 5.1.2的源代码,解压缩到C:/Src.不要和我说你的C盘没有空间了;)这样,在SRC/lua-5.1.2/下面就会出现Lua的源码了。接下来,我们以右键->编辑打开etc/luavs.bat,这是Lua提供的在VS2003下面编译自身的批处理文件.我们的目标是根据此文件,制作VS2003的工程.首先,让我们看看这个文件的内容:cl /MD /O2 /W3
1.前言 上次偶说到从C/C++中调用Lua的函数, 然后就有朋友问从Lua中如何调用C/C++的 函数, 所以偶们这次就来说说这个问题. 首先偶们会在C++中建立一个函数, 然后 告知Lua有这个函数, 最后再执行它. 另外, 由于函数不是在Lua中定义的, 所以 无法确定函数的正确性, 可能在调用过程中会出错, 因此偶们还会说说Lua出错处
转载 2024-07-26 16:06:25
48阅读
C#与Lua的交互主要是由Lua官方的提供的LuaInterface.dll库实现的。什么是LuaInterface LuaInterface包括两个动态链接库文件,一个是luaInterface.dll,在C#中操作Lua所必需的依赖文件一个是Luanet.dllC#与Lua交互过程:   C# Call Lua :由C#文件先调用Lua解析器底层Luanet.d
转载 2024-05-07 08:15:15
406阅读
一.用C语言写了一个Dll,编译成功。是一个非常简单的加密算法
转载 2010-07-19 23:47:00
499阅读
2评论
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阅读
c++调用c#DLL;此文章演示了建立c#的dllc++建立工程,引入dll;不能解决的问题:指定dll的路径,在代码里面直接 #using "xxx.dll" 必须要在使用路径 #using "../bin/debug/xxx.dll"1-建立c#的dll,过程略;2.修改输出路径输出为 ../bin/debug; ../bi
转载 2022-04-07 17:00:57
1564阅读
前言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评论
// lualib.cpp : 定义 DLL 应用程序的导出函数。 // #include "stdafx.h" #include "lua.hpp" extern "C" { #include "lua.h" #include "lualib.h" #include "lauxlib.h" } static int MyLuaDLL_HelloWorld(lua_State*
原创 2013-10-18 10:45:36
9123阅读
#include<QLibrary> void TestAddDll::on_pushButton_clicked(){ QLibrary lib("AddDll.dll"); if (lib.load()) {  typedef int(*AddFunction)(int a,int b);  AddFuncti
原创 2010-08-03 17:04:52
1587阅读
一起学习JAVA以其跨平台的特性深受人们喜爱,而又正由于它的跨平台的目的,使得它和本地机器的各种内部联系变得很少,约束了它的功能。解决JAVA对本地操作的一种方法就是JNI。JAVA通过JNI调用本地方法,而本地方法是以库文件的形式存放的(在WINDOWS平台上是DLL文件形式,在UNIX机器上是SO文件形式)。通过调用本地的库文件的内部方法,使JAVA可以实现和本地机器的紧密联系,调用系统级的各
C语言初学总结】 C语言函数函数1.函数的定义函数定义就是函数体的实现,函数体就是一个代码块,他在函数调用执行时,与函数定义相反,函数声明出现在函数被调用的地方。 1.1函数注意点: 每条语句后边必须要有;号(条件语句等特殊情况除外) C语言中本身带了很多库函数,并分门类的放在了不同的头文件中,使用时只要引用对应正确的头文件即可。 除了C语言自带函数之外,我们也可以编写自己的函数,称之为自定义函
很多人苦于lua脚本被别人破解导致整个游戏被他人抄袭而苦恼,现在来说说最近刚研究通的一种修改办法,可以加载自己加密过的脚本,而且又不会导致普通的lua脚本无法执行,这样既可以运行加密脚本也可以运行普通的脚本,这是多么爽的一件事情。好了接下来我直接给出我们需要修改的地方;打开文件loadlib.c这个文件我们可以看到有几个函数loader_Lua,loader_C等函数;我们可以仿一个 ,实现自己
转载 2024-03-06 01:25:39
47阅读
源:java调用C/C++dll Java语言本身具有跨平台性,如果通过Java调用DLL的技术方便易用,使用Java开发前台界面可以更快速,也能带来跨平台性。Java调用C/C++写好的DLL库时,由于基本数据类型不同、使用字节序列可能有差异,所以在参数传递过程中容易出现问题,DLL中可能需...
转载 2015-06-03 11:37:00
339阅读
2评论
Java如何和DLL一起编程      首先引用一篇文章,介绍一个简单的JNI的调用的过程。    JAVA以其跨平台的特性深受人们喜爱,而又正由于它的跨平台的目的,使得它和本地机器的各种内部联系变得很少,约束了它的功能。解决JAVA对本地操作的一种方法就是JNI。     JA
转载 2023-06-29 09:45:33
225阅读
  • 1
  • 2
  • 3
  • 4
  • 5