一、Lua堆栈 要理解Lua和C++交互,首先要理解Lua堆栈。 简单来说,Lua和C/C++语言通信的主要方法是一个无处不在的虚拟栈。栈的特点是先进后出。堆栈索引的方式可是是正数也可以是负数,区别是:正数索引1永远表示栈底,负数索引-1永远表示栈顶。如图: 二、堆栈的操作 因为Lua与C/C++是通过栈来通信,Lua提供了C API对栈进行操作。 我们先来看一个最简单的例子: #includ
1.起因上半年项目开始使用UWA GOT Online进行性能分析检测。在Lua项的检查中,引用已经被Destroyed的Unity Object数量一直在上升,由此判断,项目中Lua的使用存在操造成C#堆内存泄漏的问题。2.问题分析与应对项目采用的热更新方案是ToLua,ToLua给C#对象分配ID存在一个字典里(objectsBackMap),Lua层通过id访问对应的对象。当Unity的Ob
转载 2024-04-03 19:22:49
84阅读
其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或者损坏了,这时你只需下载这个msvcrt10.dll文件进行安装(前提是找到适合的版本),当我们执行某一个.exe程序时,相应的DLL文件就会被调用,因此安装好之后就能重新打开你的软件或游戏了. 那么出现msvcrt10.dll丢失要怎
前言: 本来想在手机端一个能记录学习时长的APP,但限于能力,目前还无法完成。于是,C在电脑上写了一个记录游戏时长的小软件。 两个想法的初衷是差不多的。代码:#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <windows.h> #include <time.h> #include &l
Visual C++编写DLL,如果在new project时选了MFC DLL,而后又想写成Regular DLL,即拥有自己的DllMain()入口函数,则在build时会遇到类似如下的link错误: error LNK2005: _DllMain@12 already defined in xxx.OBJ几种解决方案:1, 你只需要在工程设置里面,把WIN32,NDEBUG,_WINDOW
转载 2010-01-19 12:10:00
68阅读
2评论
lua是我工作中的第一语言,因而工作的大部分时间,都在敲着lua代码。虽然它语法是否简单 好学,但它来做工程的人,都不免要抱怨作者的一些设定理念。 据说作者是一个学院派的人(从他的 sample代码中就能看出这点),很少也不会去考虑做工程的人的需求。 因而,留给我们这些使用lua 的人不少痛苦。     &nbsp
1、什么是内存泄漏?程序的运行需要内存,只要程序提出要求,操作系统或者运行是就必须供给内存。对于持续运行的服务进程,必须及时释放内存,否则,内存占用越来越高,轻则影响系统性能,重则导致进程崩溃。不再用到的内存,没有及时释放,就叫做内存泄漏。有些语言(比如c语言)必须手动释放内存,程序员负责内存管理。这很麻烦,所以大多数语言提供自动内存管理,减轻程序员的负担,这被称为"垃圾回收机制"。内存泄漏的识别
前言 最近在编写项目时候,遇到了java调用C#类库的情况,试了很多种方法,也遇到了很多坑。解决之后写下来。作为记录和分享给有用的朋友们。在这里我的工具是jni4net-0.8.8.0,Visual Studio2015一、编写C#类库代码,并生成DLL文件。 1.按如图步骤Visual Studio(我的vs2015)新建一个C#的类库项目,项目名称为HelloWorld。 创建C#类库项
转载 2023-07-29 14:03:29
139阅读
一是,隐式连结,dll编译连结时生成的.h和.lib文件。可以直接调用.dll中的函数。 二是显式连结,不需要其它附加文件,LoadLibrary和GetProcAdress()函数 一、关于调用方式: 1、静态调用方式:由编译系统完成对DLL的加载和应用程序结束时DLL卸载的编码(如还有其它程序使用该DLL,则Windows对DLL的应用记录减
转载 2024-03-04 05:39:59
553阅读
字节码文件头lua5.1字节码文件头的长度为12字节,在我的环境里(Win7 64位,VS下编译为Win32应用)如下:1b4c 7561 5100 0104 0404 0800 其中第1-4字节为:"\033Lua"; 第5字节标识lua的版本号,lua5.1为 0x51; 第6字节为官方中保留,lua5.1中为 0x0; 第7字节标识字节序,little-endian为0x01,big-end
转载 2024-03-02 10:16:00
188阅读
hashCode和equalshashCode和equals用来标识对象,两个方法协同工作可用来判断两个对象是否相等。众所周知,根据生成的哈希将数据散列开来,可以使存取元素更快。对象通过调用Object.hashCode()生成哈希值 ;由于不可避免会存在哈希值冲突 的情况 ,因此当hashCode相同时,还需要再调用equals进行一次值的比较;但是若hashCode不同,将直接判定Obje
导入MySQL我们可以一个简单语句导入SQLite库,假设Lua中正确实现并已完成。在安装过程中,文件夹libsql共含数据库相关的文件。复制代码 代码如下:mysql = require "luasql.mysql"可变的MySQL将提供通过参照主MySQL表访问该功能。建立连接我们可以设立一个启动MySQL的环境,然后创建环境的连接。如下所示。复制代码 代码如下:local env = m
脚本执行顺序默认脚本是无序执行,也就是哪个脚本先执行,哪个脚本后执行是未知的。也可以手动指定执行顺序,在如上图所示中,可以点击 加号 按钮,然后添加脚本的顺序,数值越大,执行顺序越靠后。消息函数Awake 初始化执行,仅执行一次,在Start方法前,脚本被禁用后依旧会执行,Start 初始化执行,仅执行一次,脚本被禁用后不会执行Update , 帧更新,每帧调用一次,OnEnable, 脚本组件启
网页一样做客户端界面可能是很多客户端开发的理想。做好一个可以实现和用户交互的动态网页应该包含两个部分:使用html做网页的布局,使用脚本如vbscript,javascript做用户交互的逻辑。当需求变化时,只需要在服务端把相关代码调整一下,用户即可看到新的内容(界面)。传统的客户端程序开发流程和网页开发可能完全不同。首先是界面的布局,在老式的界面布局过程中,程序员先在界面上放好各种控件,然后
转载 2024-02-29 18:08:59
402阅读
第二章从编译开始首先拿到Lua 5.1.2的源代码,解压缩到C:/Src.不要和我说你的C盘没有空间了;)这样,在SRC/lua-5.1.2/下面就会出现Lua的源码了。接下来,我们以右键->编辑打开etc/luavs.bat,这是Lua提供的在VS2003下面编译自身的批处理文件.我们的目标是根据此文件,制作VS2003的工程.首先,让我们看看这个文件的内容:cl /MD /O2 /W3
对于写稿爱好者来说,一款适合自己的写作软件至关重要,尤其是对于需要进行长篇幅写作或者长时间写作的写稿爱好者来说,选择一款好的写作软件不仅可以有效提高写作效率和提高写作质量,还可以让写作成为一件轻松愉悦的事。现在市面上的写作软件众多,想要寻找到一款适合自己的写作软件并非一件容易的事。对于身份不同有着不同需求的写稿爱好者来说,对写作软件的设计和功能要求都比较有针对性。就拿 XMind ,滴答清单和 E
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阅读
今天,我们来优化支付订单接口。通过这个接口,我们来看看怎么高效解决 for 循环产生的内存溢出问题。对于 JVM 内存溢出或泄露来说,通常性能人员都能定位到一个应用 hang 住了。但是,要想进一步判断出应用 hang 住的原因,并没有那么容易做到。因为内存大时做堆 Dump 比较费时,更重要的一点是,要想把堆里面的对象和栈关联起来是需要足够的经验和时间的。这也是其中的难点之一。这节就带你来看看怎
.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评论
  • 1
  • 2
  • 3
  • 4
  • 5