avatar
Articles
286
Tags
104
Categories
25

Theqiqi_blog
Search

Theqiqi_blog

3.主程序预留接口搜索框写成dll注入
Created2024-03-28|graphi_with_draw|C++•raylib•graphi
1. 核心原理要实现“注入并显示”,DLL 必须能把自己挂载到主程序的渲染循环里。在 raylib 中,由于它是顺序执行的,最简单的“注入”方式是: 主程序提供一个入口(类似一个“插件槽位”)。 2. DLL 端代码:searchbox_dll.cpp1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071#include "IPlugin.h"#include <vector>// 插件内部私有变量(被封存在 DLL 内存空间中)static char inputText[64] = { 0 };static int letterCount = 0;static bool active = false;// --- 接口实现函数 ---void SearchOnInit() { // 可以在这里初始化资源, ...
2.ray实现搜索框架
Created2024-03-28|graphi_with_draw|C++•raylib•graphi
在 raylib 中实现搜索框,主要需要解决三个问题:键盘输入捕捉、光标闪烁动画、以及文本溢出处理。 1. 核心逻辑:即时模式输入搜索框的本质是一个字符串。每一帧,你都要检查键盘是否有按键被按下,并将其追加到字符串末尾。 2. 代码实现示例这段代码演示了如何创建一个带圆角阴影、支持退格键(Backspace)和动态光标的现代搜索框。 C++ 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586#include "raylib.h"#include <string.h>int main() { InitWindow(800, 450, "Raylib Search Box"); // 搜索框状态 char inputText[64] = & ...
1.ray实现桌面挂件
Created2024-03-28|graphi_with_draw|C++•raylib•graphi
实现一个现代桌面挂件的代码。它具备以下特性: 无边框与全透明:图片像直接贴在桌面上一样。 鼠标拖动:因为去掉了系统边框,我们手动实现点击图片即可拖拽。 圆角处理:利用 Shader 实时裁剪图片为圆角。 置顶显示:永远浮在其他窗口上方。 1. 准备工作请确保目录下有一张名为 image.png 的图片,并创建一个 mask.fs 文件用于圆角裁剪: mask.fs (圆角裁剪着色器) OpenGL Shading Language 123456789101112131415#version 330in vec2 fragTexCoord;out vec4 finalColor;uniform sampler2D texture0;uniform float roundness; // 0.0 到 0.5void main() { vec2 p = fragTexCoord - vec2(0.5); vec2 q = abs(p) - vec2(0.5 - roundness); float dist = length(max(q, 0.0)) + min ...
13.linux下使用cmake与preset构建cpp项目
Created2024-03-04|cmake|C++•cmake•linux
.linux下使用cmake与preset构建cpp项目1.main.cpp12345678910111213#include <iostream>int main(){ auto lang = "C++"; std::cout << "Hello and welcome to " << lang << "!\n"; for (int i = 1; i <= 5; i++) { std::cout << "i = " << i << std::endl; } return 0;} CMakeLists.txt12345678910111213cmake_minimum_required(VERSION 3.31)project(preset1 VERSION 0.1 LANGUAGES CXX C)set(CMAKE_CXX_STAN ...
12.使用cmake构建vcpkg管理的opencv库
Created2024-03-04|cmake|C++•cmake•opencv•vcpkg
1.使用vcpkg安装opencv库1./vcpkg install opencv:x64-windows --head --clean-after-build 2.在cmake中引入vcpkg管理的qt6静态库1.main.cpp12345678910#include <QCoreApplication>int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); qDebug("hello,world\n"); qDebug() << "hi:" << "see you"; return a.exec();} 2.cmakelists.txt1234567891011121314151617181920212223242526272829303132cmake_minimum_required(VERSION 3.16)# 移除或修改三元组:改为动态版本 x64- ...
11.cmake使用ninja配合配置构建qt程序
Created2024-03-04|cmake|C++•cmake•Qt6•GUI•Ninja
cmake使用ninja配合配置构建qt程序1.控制台程序1.src/main.cpp12345678910#include <QCoreApplication>int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); qDebug("hello,world\n"); qDebug() << "hi:" << "see you"; return a.exec();} 2.CMakeLists.txt123456789101112131415161718192021222324252627282930cmake_minimum_required(VERSION 3.24.0)# 设置项目名称和版本project(MyQtApp VERSION 0.1 LANGUAGES CXX)#系统变量中没有Qt目录需要添加路径option(USE_STATIC_QT " ...
10.cmake使用不同编译器
Created2024-03-04|cmake|c•cmake•compile
使用不同编译器强制使用命令行选择编译器123456789101112131415161718# 强制使用 Clangcmake -S . -B build -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang# 强制使用 GCC (确保已经在环境变量中)cmake -G "MinGW Makefiles" -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++# 强制使用 msvc# 方式 A:使用默认的 Visual Studio 生成器(生成 .sln 工程)cmake -S . -B build_msvc -G "Visual Studio 17 2022" -A x64# 方式 B:使用 Ninja 生成器(更推荐,速度更快,但需要进入“开发者命令提示符”)cmake -G "Ninja" -S . -B build_msvc -DCMAKE_C_COMPILER=cl.exe -DCMAKE_CXX_COMPILER=cl.ex ...
9.cmake编译静态库与动态库
Created2024-03-04|cmake|c•cmake•lib
1使用cmake编译静态库项目结构12345678910111213│ CMakeLists.txt│├─out│ └─build│ └─x64-debug├─ProjectA│ CMaKeLists.txt│ main.cpp│└─ProjectB_lib CMakeLists.txt ProjectB.cpp ProjectB.h 根目录文件CMakeLists.txt1234567891011121314151617181920cmake_minimum_required(VERSION 3.15)project(MultiProjectSolution)# --- 1. MSVC 特殊优化配置 ---if (MSVC) # 开启多核并行编译 add_compile_options(/MP) # 智能调试信息格式策略 (CMP0141) if (POLICY CMP0141) cmake_policy(SET CMP0141 NEW) set( ...
8.cmake使用vcpkg在vs2022中链接gtest库
Created2024-03-04|cmake|c•cmake•raylib
gtest在vs2022中使用cmake添加vcpkg管理的gtest库1.在CMakePresets.json中添加配置 123"cacheVariables": { "CMAKE_TOOLCHAIN_FILE": "C:/D/test/CC++/cc++lib/vcpkg/vcpkg/scripts/buildsystems/vcpkg.cmake"} 项目结构1234567891011121314151617181920│ CMakeLists.txt│ CMakePresets.json│├─CMakeProject2│ CMakeLists.txt│ CMakeProject2.cpp│ MyClass.cpp│ MyClass.h│├─CMakeProject3│ CMakeLists.txt│ CMakeProject3.cpp│├─out│ └─build└─unit_tests CMakeLists.txt ...
7.cmake使用vcpkg链接gtest库
Created2024-03-04|cmake|c•cmake•gtest
gtest1.windows上使用vcpkg下载gtest动态库与静态库1.gtest动态库1.\vcpkg.exe install gtest:x64-windows 2.下载安装git bash环境2.cmake使用vcpkg管理的gtest库1.项目结构1234│ build.sh│ CMakeLists.txt│ test_example.cpp 2.test_example.cpp123456789101112131415161718192021222324252627282930313233343536#include <gtest/gtest.h>#include <iostream>// 对应 TEST_MODULE_INITIALIZE:GTest 使用全局环境或简单的函数// 如果只是打印,可以直接在测试用例里写,或者使用下面的全局环境class MyEnvironment : public ::testing::Environment {public: void SetUp() override { ...
1…222324…29
avatar
Theqiqi
Articles
286
Tags
104
Categories
25
Follow Me
Announcement
This is my Blog
Recent Post
101.使用Grop网站提供的api2026-01-03
9.压测2025-03-27
8.Linux Socket并发模型http服务器2025-03-27
7.web服务器中收发REST接口2025-03-27
6使用c语言与linux系统写一个web服务器,解析并响应get与post请求2025-03-27
Categories
  • C with Socks16
  • C_Sound10
  • C_Windows_Graphi9
  • Cpp5
  • Cpp_Socket4
  • C语言在Windows中实现抓包4
  • C语言的万种用法9
  • Debian1
Tags
cmake Cmake ipv4 x86汇编程序 Hacking LinuxDriver Python C++ android c_windows_driver Drvier epoll Piano OpenGl Disk linux MySql web Ethernet WindowsDrive jsp gtest html poll LinSock first pragram AI UART javascript System C http opencv Sound system PVE Hook Graphi Qt5.8 c语言的万种用法
Archives
  • January 20261
  • March 202595
  • February 202523
  • September 20242
  • August 202471
  • June 20242
  • March 202443
  • February 20248
Info
Article :
286
UV :
PV :
Last Update :
©2020 - 2026 By Theqiqi
Framework Hexo|Theme Butterfly
Search
Loading the Database