使用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堆栈 要理解Lua和C++交互,首先要理解Lua堆栈。 简单来说,Lua和C/C++语言通信的主要方法是一个无处不在的虚拟栈。栈的特点是先进后出。堆栈索引的方式可是是正数也可以是负数,区别是:正数索引1永远表示栈底,负数索引-1永远表示栈顶。如图:  二、堆栈的操作 因为Lua与C/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阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Lua与C++交互初探之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.dll,C#与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#的dll;c++建立工程,引入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阅读