原创 C++ 程序嵌 Lua(基於 LuaBridge)

配置文件搞不定的,就得依賴腳本。C++ 程序想嵌點腳本,Lua 幾乎是首選。 Lua 的源碼自帶 Makefile,可以編譯出靜態庫、解釋器、編譯器三個目標文件,作爲宿主的 C++ 程序,除了要包含 Lua 頭文件,還應該鏈接這個靜態庫。

原创 lua與C交互(2):獲取lua文件中全局變量的值

cc代碼 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <iostream> #include "lua.hpp" #include "lau

原创 boost.asio同步TCP客戶端封裝

頭文件 #pragma once #ifndef TCP_CLIENT_H #define TCP_CLIENT_H #include <boost/asio.hpp> #include <string> using namespa

原创 lua與C交互(1):簡單棧操作

下面的代碼是用來打印lua棧數據的簡單版本: #include <stdio.h> #include <stdlib.h> #include <string.h> #include "lua.hpp" #include "lauxl

原创 libuv客戶端

#include <stdio.h> #include <string.h> #include <stdlib.h> #include <uv.h> #pragma comment (lib, "ws2_32.lib") #pragm

原创 lua與C交互(7):C函數管理

(1)將要調用的函數封裝成一個模塊 例如我們要用C封裝一個數學模塊給lua調用,lua中調用的代碼爲 sum = mymath.add(1, 3) sub = mymath.sub(4, 2) print(sum, sub) CC代碼爲

原创 C++結合lua:LuaBridge讓這一切變得更簡單(包括變量和函數)

爲什麼使用Lua? C++和腳本結合使用是非常好的實踐,這種用法提供了非常大的靈活度和自由空間。腳本文件能夠作配置文件和編寫複雜的函數。更重要的一點是,修改腳本文件後無需重新編譯,它能夠幫助你集中精力和避免精力分散。 你甚至可以設計這樣的

原创 libuv異步任務

libuv有一個異步機制,你可以將要執行的任務放到一個線程池裏執行,從而使得主線程能夠執行其他任務而不受阻塞。 將一個任務提交到線程池裏的接口爲: int uv_queue_work(uv_loop_t* loop, uv_work_t

原创 lua與C交互(6):lua調用C函數

lua要調用的C函數有一個一致的簽名: typedef int (*lua_CFunction) (lua_State *L); 函數的返回值表示函數的返回值個數,lua與C通過lua虛擬機中的棧來傳遞參數和返回參數。 即C中的函數應該

原创 QT 自定義控件設置樣式無效的辦法

問題: QT自定義控件,控件繼承自widget,其間有用到佈局進行控制,然後調用自定義控件的setStyleSheet方法設置樣子,僞代碼如下: class MyWidget : public QWidget { ......

原创 lua與C交互(3):與lua表的簡單交互

C讀取lua表中字段的值。 lua代碼: print("print from test lua.") name = "linxing" age = 19 list = {} list.width = 190 list.height =

原创 lua與C交互(5):lua調用C變量

lua代碼: print("print from demo lua.") -- 訪問全局變量 print("name", name) print("age", age) print("no", no) print("room", ro

原创 QT使用注意事項

1. 當涉及QT庫相關時,尤其是要使用QT的plugins功能時,要注意運行程序的目錄是否包含相關的DLL文件。可以通過QCoreApplication::addLibraryPath("./");來增加程序的庫查找目錄,特別是當使用QT

原创 redis集羣模式啓動

最低集羣配置 官方的最低集羣配置是3個master和3個slave,一個master對應一個slave。 6個redis的配置分別如下 #redis1.conf port 7000 cluster-enabled yes clus

原创 大數加法算法筆記

使用C++實現,代碼有註釋。 實現思路: 1. 將加法分解成三個小問題:     a. 兩個都是正整數     b. 兩個都是負整數     c. 一個正數,一個負數 2. 兩個正整數相加算法:     a. 主加循環:倒序遍歷。兩個整數