win c++使用lua环境配置 5.3.5版本

news/2024/10/22 18:31:19/

lua_0">编译lua

下载lua源码,github仓库

使用vs编译源码,新建一个静态库项目(只会生成lib文件),想要dll的话就新建dll项目(有一个lib文件和dll文件)

lua源码下面的文件夹都是,复制到vs项目中
lib目录是我手动建的,我把编译好的lib文件放lib目录下了
sourcecode
点击生成就好了

lua_10">在c++中使用lua

包含目录写上面的liblua/include
包含目录

库目录写刚编译出来的lib目录,上图的lib目录

lib库目录

链接器添加lualib.lib
链接器

c++ 测试demo示例

c++要include lua.hpp 不然会报错

// lua.hpp
// Lua header files for C++
// <<extern "C">> not supplied automatically because Lua also compiles as C++extern "C" {
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
}

这里的extern "C"就是告诉编译器按c格式来。兼容c++

#include <lua.hpp>#include <iostream>using namespace std;static void StackDump(lua_State* L) {int top = lua_gettop(L);for (int i = 1; i <= top; ++i) {int t = lua_type(L, i);switch (t) {case LUA_TSTRING: {cout << lua_tostring(L, i);break;}case LUA_TBOOLEAN: {cout << lua_toboolean(L, i);break;}case LUA_TNUMBER: {if (lua_isinteger(L, i))cout << lua_tointeger(L, i);elsecout << lua_tonumber(L, i);break;}default: {cout << lua_typename(L, i);break;}}cout << " ";}cout << endl;
}int main()
{lua_State* L = luaL_newstate();lua_pushboolean(L, 1);lua_pushnumber(L, 10);lua_pushnil(L);lua_pushstring(L, "hello");StackDump(L);return 0;
}

http://www.ppmy.cn/news/1442527.html

相关文章

【前端缓存】localStorage是同步还是异步的?为什么?

写在开头 点赞 收藏 学会 首先明确一点&#xff0c;localStorage是同步的 一、首先为什么会有这样的问题 localStorage 是 Web Storage API 的一部分&#xff0c;它提供了一种存储键值对的机制。localStorage 的数据是持久存储在用户的硬盘上的&#xff0c;而不是内存。这意…

可视化智慧工厂

在科技迅猛发展的今天&#xff0c;制造业正迎来一场深刻的变革——智慧工厂的崛起。可视化智慧工厂作为其中的重要一环&#xff0c;以其直观、高效、智能的特点&#xff0c;正成为制造业转型升级的关键所在。 一、什么是可视化智慧工厂? 传统的制造业生产方式往往依赖于人工…

Unity | 集成 Protobuf(proto 转 cs 插件及序列化与反序列化)

1. 添加 dll 1. 下载 protobuf 源码 根据需要下载 protobuf 指定版本的源码&#xff0c;这里以 v3.21.12&#xff08;protobuf-csharp-3.21.12.zip&#xff09;为例&#xff1a; 下载地址&#xff1a;「https://github.com/protocolbuffers/protobuf/releases」 2. 下载 Vis…

Springboot 中RedisTemplate使用scan来获取所有的key底层做了哪些事情

直接上代码&#xff0c;围绕着代码来讨论 redisTemplate.execute((RedisCallback<Object>) (connection) -> {Cursor<byte[]> scan connection.scan(ScanOptions.scanOptions().count(2).match("*").build());scan.forEachRemaining((bytes) -> {…

有关钱包相关开发的库和依赖

Trezor 钱包 GitHub 组织&#xff1a;https://github.com/trezor说明&#xff1a;Trezor 是一款硬件加密货币钱包&#xff0c;它的团队开发了与助记词相关的许多工具和库。 Electrum 钱包 GitHub 仓库&#xff1a;https://github.com/spesmilo/electrum说明&#xff1a;Electru…

mongodb 数据库基本操作详解及示例

MongoDB 是一个基于分布式文件存储的 NoSQL 数据库&#xff0c;由 C 语言编写。相较于关系型数据库&#xff0c;MongoDB 更加灵活并且有着良好的扩展性。 以下是 MongoDB 的一些基本操作&#xff1a; 启动 MongoDB Server&#xff1a; 在终端中执行 mongod 命令来启动 MongoDB …

Flutter开发好用插件url_launcher详解-启动 URL

文章目录 url_launcher介绍安装用法错误处理自定义行为其他功能 url_launcher介绍 url_launcher 是一个 Flutter 插件&#xff0c;用于启动 URL。它支持网络、电话、短信和电子邮件方案。您可以使用它从您的 Flutter 应用程序中打开网站、拨打号码、发送短信或撰写电子邮件。 …

ajax使用案例

1.index.jsp页面&#xff1a; 下边是采用JavaScript的ajax发出异步请求。 <% page language"java" contentType"text/html; charsetUTF-8" pageEncoding"UTF-8"%> <%String basePath request.getScheme()"://" request.ge…