当前位置: 首页 > news >正文

在 Dev-C++中编译运行GUI 程序介绍(二)示例:祝福程序

在 Dev-C++中编译运行GUI 程序介绍(二)示例:祝福程序

前期见:

在 Dev-C++中编译运行GUI 程序介绍(一)基础 https://blog.csdn.net/cnds123/article/details/147019078

示例1、祝福程序

本文中的这个祝福程序是一个使用 Windows API 编写的简单 GUI 应用程序,比较简单,可在 Dev-C++中编译运行,主要用于显示中秋节的祝福语。

运行效果

【编译设置

在 Dev-C++ 中,找到 "工具" 菜单并选择 "编译选项"。

在 "编译器" 选项卡中,将以下内容添加到 "链接器" 中:

-luser32 -lgdi32

-lgdi32 -lcrypt32

运行时,是否可以不显示cmd黑窗口?

在 Dev-C++ 中隐藏命令提示符窗口条件:确保您创建的是一个 Windows GUI 应用程序,而不是控制台应用程序。在 "链接器" 部分,添加 -mwindows 参数。这个参数告诉编译器链接为 Windows 应用程序,而不是控制台应用程序。

详见签约博文。】

源码(参考自网路)如下

#include <windows.h>
#include <iostream>  //string greetings[]用 using namespace std;//一个字符串数组,包含了祝福语。  
string greetings[] = {"祝你每天如意吉祥!","祝你家庭幸福美满!","愿你合家欢乐,幸福美满,好运连连!","祝你事业顺利,万事如意,梦想成真!","祝你幸福快乐每一天!","祝你万事如意,笑容如花,事业有成,家庭美满!"
};int win_w,win_h;  //用于存储窗口的宽度和高度。HWND label,wish;  //HWND 类型的句柄,分别用于窗口中的标签和祝福文本。//该函数会从 greetings 数组中随机选择一条祝福语,并将其设置为窗口中显示的文本。 
void get_rand() {int index = rand() % (sizeof(greetings) / sizeof(greetings[0]));SetWindowText(wish, greetings[index].c_str());
}//这是 Windows 应用程序的核心功能,处理所有发送到窗口的消息 
LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) {switch(Message) {case WM_CREATE: {//界面元素的创建static HFONT hFont = CreateFont(40,0,0,0,0,FALSE,FALSE,0,DEFAULT_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH|FF_SWISS,"微软雅黑");//创建字体// labellabel = CreateWindow("static", TEXT("祝福语言"), WS_CHILD | WS_VISIBLE | SS_CENTER, 0, 0, win_w, 45, hwnd,(HMENU)1,((LPCREATESTRUCT)lParam)->hInstance,NULL);SendMessage(label,WM_SETFONT,(WPARAM)hFont,TRUE);// wishstatic HFONT hFont2 = CreateFont(25,0,0,0,0,FALSE,FALSE,0,DEFAULT_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH|FF_SWISS,"微软雅黑");//创建字体wish = CreateWindow("static", TEXT(""), WS_CHILD | WS_VISIBLE | SS_CENTER, 0, 50, win_w, 45, hwnd,(HMENU)1,((LPCREATESTRUCT)lParam)->hInstance,NULL);SendMessage(wish,WM_SETFONT,(WPARAM)hFont2,TRUE);CreateWindow("button", TEXT("随机"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON , 100, 150, 100, 45, hwnd,(HMENU)1001,((LPCREATESTRUCT)lParam)->hInstance,NULL);CreateWindow("button", TEXT("退出"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON , 300, 150, 100, 45, hwnd,(HMENU)1002,((LPCREATESTRUCT)lParam)->hInstance,NULL);LONG style = GetWindowLong(hwnd, GWL_STYLE);        style &= ~(WS_MAXIMIZEBOX|WS_SIZEBOX|WS_MINIMIZE);        SetWindowLong(hwnd, GWL_STYLE, style);        get_rand();break;}case WM_COMMAND: {if(LOWORD(wParam)==1001){get_rand();} else if (LOWORD(wParam)==1002) {DestroyWindow(hwnd);}break; }case WM_DESTROY: {PostQuitMessage(0);break;}default:return DefWindowProc(hwnd, Message, wParam, lParam);}return 0;
}//这是 Windows 应用程序的入口点。 
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {WNDCLASSEX wc;HWND hwnd;MSG Msg;memset(&wc,0,sizeof(wc));wc.cbSize                 = sizeof(WNDCLASSEX);wc.lpfnWndProc         = WndProc; /* insert window procedure function here */wc.hInstance         = hInstance;wc.hCursor                 = LoadCursor(NULL, IDC_ARROW);wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);wc.lpszClassName = "WindowClass";wc.hIcon                 = LoadIcon(NULL, IDI_APPLICATION); /* use "A" as icon name when you want to use the project icon */wc.hIconSm                 = LoadIcon(NULL, IDI_APPLICATION); /* as above */if(!RegisterClassEx(&wc)) {MessageBox(NULL, "Window Registration Failed!","Error!",MB_ICONEXCLAMATION|MB_OK);return 0;}win_h = 240;win_w = 640;hwnd = CreateWindowEx(WS_EX_CLIENTEDGE,"WindowClass","祝福",WS_VISIBLE|WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,win_w,win_h,NULL,NULL,hInstance,NULL);if(hwnd == NULL) {MessageBox(NULL, "Window Creation Failed!","Error!",MB_ICONEXCLAMATION|MB_OK);return 0;}while(GetMessage(&Msg, NULL, 0, 0) > 0) {TranslateMessage(&Msg);DispatchMessage(&Msg);}return Msg.wParam;
}

说明

windows.h:包含 Windows API 的所有功能,允许进行窗口创建、消息处理等。

iostream:用于输入输出操作。

窗口过程函数

LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) { ... }

这是 Windows 应用程序的核心功能,处理所有发送到窗口的消息,包括:

  • WM_CREATE:窗口创建时调用,创建界面元素(标签和按钮)并初始化文本。
  • WM_COMMAND:处理按钮点击事件。如果点击“随机”按钮,就调用 get_rand() 函数;如果点击“退出”按钮,就销毁窗口。
  • WM_DESTROY:窗口被销毁时,发送退出消息。
  • 其他消息则调用默认窗口处理过程。

WinMain 函数

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { ... }

这是 Windows 应用程序的入口点。主要步骤包括:

  • 定义窗口类,并设置其属性(如窗口过程、光标、背景等)。
  • 注册窗口类。
  • 创建窗口并显示。
  • 进入消息循环,等待和处理窗口消息。

在 WinMain 函数中,调用 CreateWindowEx 创建窗口,并通过 ShowWindow 和 UpdateWindow 显示窗口。

特别提示

需要注意的是,Windows API 开发应用程序并不一定都是图形用户界面(GUI)的。Windows API(应用程序编程接口)是一个功能丰富的库,支持多种类型的应用程序开发,包括命令行工具、后台服务、驱动程序以及传统的 GUI 应用程序。

一个简单的 Windows API 控制台应用程序示例源码:

#include <windows.h>
#include <stdio.h>int main() {SYSTEM_INFO sysInfo;GetSystemInfo(&sysInfo);printf("处理器数量: %d\n", sysInfo.dwNumberOfProcessors);printf("页面大小: %d bytes\n", sysInfo.dwPageSize);MEMORYSTATUSEX memInfo;memInfo.dwLength = sizeof(MEMORYSTATUSEX);GlobalMemoryStatusEx(&memInfo);printf("总物理内存: %lld MB\n", memInfo.ullTotalPhys / (1024 * 1024));printf("可用物理内存: %lld MB\n", memInfo.ullAvailPhys / (1024 * 1024));return 0;
}

运行效果:

通过灵活使用 Windows API,你可以开发出适应各种场景的高效应用程序! 

我们这个系列主题,重点关注的是用户交互界面(窗口)的GUI 应用程序。

开发简单的小项目或游戏来应用所学知识,参考其他人的例子是一种好方法。后面还将给出我收集的更多的例子。

相关文章:

在 Dev-C++中编译运行GUI 程序介绍(二)示例:祝福程序

在 Dev-C中编译运行GUI 程序介绍&#xff08;二&#xff09;示例&#xff1a;祝福程序 前期见&#xff1a; 在 Dev-C中编译运行GUI 程序介绍&#xff08;一&#xff09;基础 https://blog.csdn.net/cnds123/article/details/147019078 示例1、祝福程序 本文中的这个祝福程序是…...

Uniapp使用onShow语法报before initialization

一、错误原因分析 函数未完成初始化时被调用 • 当你在 onShow 生命周期中调用 getUserMessagePlan() 时&#xff0c;如果该函数的定义位于调用代码的下方&#xff08;如示例中的顺序&#xff09;&#xff0c;JavaScript 引擎会因 变量提升规则 抛出此错误。 • 示例代码结构&a…...

大模型在儿童急性淋巴细胞白血病(ALL)-初治患者诊疗中应用的研究报告

目录 一、绪论 1.1 研究背景与意义 1.2 国内外研究现状 1.3 研究目的与内容 二、大模型技术与儿童 ALL 相关知识 2.1 大模型技术原理与特点 2.2 儿童 ALL 的病理生理与诊疗现状 三、术前风险预测与手术方案制定 3.1 术前数据收集与预处理 3.2 大模型预测术前风险 3.…...

如何选择适合机床的丝杆支撑座型号?

在机床中选择丝杆支撑座型号时&#xff0c;需综合考虑机械性能、安装条件及应用需求&#xff0c;接下来我们一起来看看详细的选型指南&#xff01; 1、‌适配性‌&#xff1a;丝杆支撑座应与所使用的滚珠丝杆完全适配&#xff0c;确保两者在尺寸、规格、性能等方面相互匹配。 2…...

「The Road to Web3 Cloud」香港活动回顾|波卡的 Web3 Cloud 愿景

在区块链基础设施的发展浪潮中&#xff0c;Polkadot 正在迈出决定性的一步&#xff1a;打造一个属于 Web3 的 “云服务平台”。如果说 Bitcoin 创造了一个计算器&#xff0c;以太坊创造了一个计算机&#xff0c;那么 Polkadot 正在做的则是构建链上的 “云服务器”。它的目标是…...

PostgreSQL-容器运行时索引修复

在 Docker 中运行的 PostgreSQL 数据库如果索引损坏&#xff0c;可以通过以下步骤进行修复。索引损坏可能会导致查询性能下降或数据不一致&#xff0c;因此需要及时处理。 1. 进入 PostgreSQL 容器 首先&#xff0c;进入运行 PostgreSQL 的 Docker 容器&#xff1a; <BASH&…...

Vanna + qwq32b 实现 text2SQL

Vanna 是一个开源的 Text-2-SQL 框架&#xff0c;主要用于通过自然语言生成 SQL 查询&#xff0c;它基于 RAG&#xff08;Retrieval-Augmented Generation&#xff0c;检索增强生成&#xff09;技术。Vanna 的核心功能是通过训练一个模型&#xff08;基于数据库的元数据和用户提…...

100V5A同步降压大功率芯片WD5105:高效电源管理的卓越之选

100V5A同步降压大功率芯片WD5105&#xff1a;高效电源管理的卓越之选 在现代电子设备的复杂电源架构中&#xff0c;对高效、稳定且可靠的电源管理芯片需求日益增长。WD5105作为一款100V5A同步降压大功率芯片&#xff0c;凭借其出色的性能、全面的保护机制以及广泛的应用适应性…...

springboot中测试python脚本:ProcessBuilder

目录 一.添加Jython依赖 二.使用步骤 1. 创建 ProcessBuilder 实例 2. 设置工作目录&#xff08;可选&#xff09; 3. 合并错误流&#xff08;可选&#xff09; 4. 启动进程 5. 处理输入输出流 6. 等待进程完成 7.完整案例 三.注意事项 ProcessBuilder是jdk提供的脚本…...

Google Chrome下载受限制的解决方案【方法指南】

在国内使用网络时&#xff0c;部分用户在尝试访问Google Chrome官网下载谷歌浏览器时&#xff0c;常常遇到网页无法打开或文件下载失败的情况。这种下载受限制的问题多由网络访问政策或DNS解析异常导致。为了正常获取Google Chrome的最新版安装程序&#xff0c;用户需要通过一些…...

mysql-锁的算法(记录锁、间隙锁、临键锁)

1.行锁的三种算法 有3种行锁算法&#xff0c;分别是&#xff1a; Record Lock&#xff1a;单个行记录上的锁&#xff0c;没有主键&#xff0c;会使用隐式的主键进行锁定Gap Lock&#xff1a;间隙锁&#xff0c;锁定一个范围&#xff0c;但不包含记录本身Next-Key Lock&#x…...

SAP Business One系统标准功能之外的不允许负库存控制

SqlServer版本写法&#xff1a; --在存储过程SBO_SP_TransactionNotification里加上这段代码&#xff0c;记得定义一个全局变量用于接收提醒具体是哪个物料 IF transaction_type IN (A) BEGINIF EXISTS (SELECT 1 FROM OIVL T0INNER JOIN OITW T1 ON T0.ItemCode T1.ItemCode…...

AI与5G的融合:如何实现更快速、更智能的物联网应用?

引言 AI和5G的结合&#xff0c;正在加速物联网&#xff08;IoT&#xff09;应用的发展&#xff0c;让万物互联变得更加智能、高效。5G提供超高速率、低时延和海量连接的网络能力&#xff0c;而AI则赋予物联网设备更强的数据分析、预测和自动决策能力。当AI与5G融合&#xff0c;…...

Redis的哨兵

Redis的哨兵 Sentinel 一.哨兵概念1.相关名词解释图 二.主节点恢复方式1.人工恢复主节点故障流程图2.哨兵自动恢复主节点流程 三.使用docker搭建环境1.安装docker-compose2.安装docker3.停止之前的redis服务器4.使用docker获取到redis的镜像5.使用docker-compose进行容器编排创…...

初识Redis · 简单理解Redis

目录 前言&#xff1a; 分布式系统 开源节流 认识Redis 负载均衡 缓存 微服务 前言&#xff1a; 本文只是作为Redis的一篇杂谈&#xff0c;简单理解一下Redis为什么要存在&#xff0c;以及它能做到和它不能做到的事儿&#xff0c;简单提及一下它对应的优势有什么&#…...

Python设计模式-抽象工厂模式

1. 什么是抽象工厂模式 抽象工厂模式&#xff08;Abstract Factory Pattern&#xff09;是一种创建型设计模式&#xff0c;它提供了一种方式来创建一系列相关或相互依赖的对象&#xff0c;而无需指定它们具体的类。这种模式是所有形式的工厂模式中最为抽象和最具一般性的一种。…...

【中检在线-注册安全分析报告】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 1. 暴力破解密码&#xff0c;造成用户信息泄露 2. 短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉 3. 带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造…...

第16届蓝桥杯单片机模拟试题Ⅲ

试题 代码 sys.h #ifndef __SYS_H__ #define __SYS_H__#include <STC15F2K60S2.H> //sys.c extern unsigned char UI; //界面标志(0湿度界面、1参数界面、2时间界面) extern unsigned char time; //时间间隔(1s~10S) extern bit ssflag; //启动/停止标志…...

软件系统安全设计方案,信息化安全建设方案(Word原件)

1.1 总体设计 1.1.1 设计原则 1.2 物理层安全 1.2.1 机房建设安全 1.2.2 电气安全特性 1.2.3 设备安全 1.2.4 介质安全措施 1.3 网络层安全 1.3.1 网络结构安全 1.3.2 划分子网络 1.3.3 异常流量管理 1.3.4 网络安全审计 1.3.5 网络访问控制 1.3.6 完…...

UE5 尝试接入 C# 脚本方案

最近团结替代 Unity6 的事官宣了&#xff0c;只能唏嘘不已&#xff0c;顺带的也就研究了一下在 UE5 中接入 C# 的方案&#xff0c;也算是提前帮广大 Unity 开发者蹚一下转 UE 的路~ 当前我发现的&#xff0c;维护比较勤快的 UE C# 方案有2个&#xff0c;UnrealCSharp 和 Unrea…...

力扣hot100 81-90记录

81-90&#xff08;动态规划&#xff09; leetcodehot100 81&#xff1a; class Solution { public:int climbStairs(int n) {int p 0, q 0, count 1;for(int i 1; i < n; i){p q; q count;count p q;}return count;} };//81class Solution { public:vector<vect…...

深入解析以太坊虚拟机(EVM)架构与状态机特性

以太坊&#xff08;Ethereum&#xff09;作为第二代区块链平台&#xff0c;其不仅仅是一部分布式账本&#xff0c;而是一个支持智能合约与去中心化应用&#xff08;DApps&#xff09;的全球计算机。其核心架构中&#xff0c;以太坊虚拟机&#xff08;Ethereum Virtual Machine&…...

MySQL---Ubuntu环境安装

1.首先我们要安装MySQL的安装包&#xff08;APT 配置包&#xff09; 这个是适合我的Ubuntu版本的MySQL安装包 下载安装包&#xff08;MySQL APT 配置包&#xff09; wget https://dev.mysql.com/get/mysql-apt-config_0.8.17-1_all.deb2.安装 APT 配置包&#xff1a; sudo d…...

Vue 3 中 ref 与 reactive 的对比

Vue 3 中 ref 与 reactive 的对比 Vue 3 中 ref 与 reactive 的对比一、定义和基本使用refreactive 二、响应式原理refreactive 三、适用场景refreactive 四、注意事项refreactive Vue 3 中 ref 与 reactive 的对比 在 Vue 3 中&#xff0c;ref 和 reactive 都是用于创建响应式…...

【数据结构 · 初阶】- 单链表

目录 一.相关指针知识点 二.链表 1.为什么学了顺序表还要学链表 2.优点 三.实现 1.链表的打印 —— 理解链表结构 (2) 物理结构图 2.链表的尾插 —— 入门 错误写法&#xff1a;tail ! NULL 总结&#xff1a; 正确代码物理图解&#xff1a; (2) 尾插整体代码 (思考…...

【前端】【React】useCallback的作用与使用场景总结

一、useCallback 的作用与使用场景总结 useCallback 是 React 提供的一个 Hook&#xff0c;用于缓存函数的引用&#xff0c;避免因为组件重新渲染而导致函数地址发生变化。它返回一个记忆&#xff08;memoized&#xff09;后的回调函数&#xff0c;只有当依赖项发生变化时才会…...

什么是 React Router?如何使用?

React Router 详解 1. 引言 在现代 web 开发中&#xff0c;单页面应用&#xff08;SPA&#xff09;越来越流行&#xff0c;React 是构建 SPA 的热门库之一。React Router 是一个标准的路由库&#xff0c;专为 React 应用设计&#xff0c;允许开发者在应用中实现动态路由和 UR…...

jQuery 插件

在现代Web开发中&#xff0c;jQuery以其简洁的语法和强大的功能成为了前端开发者们喜爱的工具之一。为了进一步扩展jQuery的功能&#xff0c;社区贡献了大量的插件&#xff0c;使得开发者能够更加高效地实现各种复杂的交互效果和功能。本文将介绍什么是jQuery插件、如何编写自己…...

未来杭州:科技与茶香交织的生态诗篇

故事背景 故事发生在中国浙江杭州&#xff0c;融合智能科技与传统茶文化&#xff0c;描绘未来城市中人与自然共生的诗意画卷。通过六个充满未来感的生态场景&#xff0c;展现科技如何重塑龙井茶园、古运河、西湖等经典地标&#xff0c;编织出一曲科技与人文共鸣的生态交响诗。 …...

微服务多模块构建feign项目过程与一些报错(2025详细版)

目录 1.eureka-server的注意事项 2.eureka-feign的注意事项 3.多模块构建feign项目过程 3.1创建父项目 3.2创建子项目eureka-server 3.3创建子项目eureka-provider 3.4创建子项目eureka-feign 3.5运行 给个点赞谢谢 1.eureka-server的注意事项 eureka-server的yml文件…...

AWS云安全实践:基于CISA关键措施的检测与实施指南

1. 引言 随着越来越多的组织将其基础设施迁移到云端,确保AWS环境的安全变得至关重要。美国网络安全与基础设施安全局(CISA)提出的关键措施为我们提供了一个可靠的框架。本文将探讨如何在AWS环境中实施这些措施,特别关注检测类别和可实施的关键措施。 2. AWS云安全中的CISA关…...

超越肉眼所见:一种利用视网膜光学相干断层扫描血管成像(OCTA)图像进行早期痴呆检测的关联模型|文献速递-深度学习医疗AI最新文献

Title 题目 Beyond the eye: A relational model for early dementia detection using retinal OCTA images 超越肉眼所见&#xff1a;一种利用视网膜光学相干断层扫描血管成像&#xff08;OCTA&#xff09;图像进行早期痴呆检测的关联模型 01 文献速递介绍 阿尔茨海默病&…...

终端使用python出现segmentation fault (core dumped)的一种解法

有时候在终端输入python&#xff0c;希望交互式运行命令或者通过pdb调试&#xff0c;但是出现如下错误&#xff1a; [1] 7476 segmentation fault (core dumped) python 但是单独运行python xxx.py 或者 python -c "xxx" 又是可以的&#xff01; 经过与AI大模…...

分布式id生成算法(雪花算法 VS 步长id生成)

分布式ID生成方案详解:雪花算法 vs 步长ID 一、核心需求 全局唯一性:集群中绝不重复有序性:有利于数据库索引性能高可用:每秒至少生成数万ID低延迟:生成耗时<1ms二、雪花算法(Snowflake) 1. 数据结构(64位) 0 | 0000000000 0000000000 0000000000 0000000000 0 |…...

h265为什么没有大范围应用

H.265&#xff08;也称为 HEVC&#xff0c;High Efficiency Video Coding&#xff09;是一种视频压缩标准&#xff0c;旨在提供比 H.264&#xff08;AVC&#xff09;更高的压缩效率。然而&#xff0c;尽管 H.265 在技术上具有许多优势&#xff0c;但其大范围应用受到了以下几个…...

Linux图形化界面

一、Linux图形化界面 桌面对于Linux系统来说&#xff0c;只是一个应用程序&#xff0c;所以是可以移植的。 Linaro公司针对于半导体厂商推出的芯片&#xff0c;开发了ARM开发工具、Linux内核以及Linux发行版&#xff08;包括Android及Ubuntu&#xff09;。 所以无需自己移植&am…...

LangChain-检索系统 (Retrieval)

检索系统 (Retrieval) 检索系统是LangChain的核心组件之一&#xff0c;它提供了从各种数据源获取相关信息的能力&#xff0c;是构建知识增强型应用的基础。本文档详细介绍LangChain检索系统的组件、工作原理和最佳实践。 概述 检索系统解决了大型语言模型知识有限和过时的问…...

【Linux】进程概念

目录 一、进程概念 &#xff08;一&#xff09;什么是进程 &#xff08;二&#xff09;描述进程-PCB 二、fork创建进程 &#xff08;一&#xff09;bash概念 &#xff08;二&#xff09;如何创建子进程 一、进程概念 &#xff08;一&#xff09;什么是进程 结论&#x…...

【JavaScript】十七、事件委托(冒泡阶段的利用)

文章目录 1、事件委托2、tab栏切换案例&#xff1a;使用事件委托优化3、阻止元素默认行为 1、事件委托 以送快递为例&#xff0c;某班有20名同学&#xff0c;每人有一个快递&#xff0c;快递员可以一个个送&#xff0c;需要送40次&#xff0c;很繁琐&#xff0c;换个方式&…...

Android InstalldNativeService::getAppSize源码分析

InstalldNativeService::getAppSize 是 Android 系统中用于计算应用程序存储空间的核心方法&#xff0c;其逻辑可分为以下几个关键模块&#xff08;结合代码和上下文分析&#xff09;&#xff1a; 一、基础校验与初始化 ​​1. 权限校验​​ 通过 ENFORCE_UID(AID_SYSTEM) 确…...

微信小程序跳

/** * 画布文本换行绘制 * canvasContext 画布实例 * text 要写入的文本 * x 初始x轴位置 * y 初始y轴位置 * ySpacing 换行后&#xff0c;每行直接的间隔 * maxWidth 此文本写入画布的最大宽度&#xff0c;超过此宽度就换行 * color 文本颜色 * size 文本字体大小 * align 文本…...

openlayers入门01 -- 环境配置和初始化地图

openlayers入门 openlayers开发环境配置 1.下载VSCode 官网地址&#xff1a;https://code.visualstudio.com/ 点击Download for Windows 2.安装汉化插件和openlayers插件 搜索chinese&#xff0c;下载Chinese (Simplified) (简体中文) Language Pack 更改语言并重启 搜…...

window实现多jdk共存、便捷切换

背景 如今大模型技术流行&#xff0c;想要跟上发展就也得学一学&#xff0c;比如Spring-AI等框架&#xff0c;但这些AI相关的框架对jdk版本都有要求&#xff0c;一般都要不低于17。 而在企业开发中&#xff0c;很多时候还使用着jdk8&#xff0c;如何重新安装17&#xff0c;则需…...

常见的 set 选项与空变量检查

在编写 Bash 脚本时&#xff0c;使用 set 命令中的一些选项可以帮助我们在脚本执行过程中及时捕获错误和潜在问题&#xff0c;避免脚本在出错时继续执行&#xff0c;提高脚本的可靠性和健壮性。 set -e&#xff1a;遇到错误就停 set -e 的作用是&#xff1a;一旦脚本中的某个…...

JS 创建对象方法

创建对象的三种方法 3 通过构造函数 自定义构造函数 构造函数 快速定义多个对象 自定义构造函数...

IMX6ULL2025年最新部署方案:最新的UBootLinux和Rootfs部署正点原子Alpha开发板指南

正点原子Alpha IMX6ULL开发板2025年最新部署方案&#xff1a;基于Ubuntu24.04平台开发&#xff0c;部署最新的UBoot/Linux和BusyBox Rootfs部署指南 前言 ​ 笔者实在绷不住比较旧的方案了&#xff0c;广义流行的方案是使用2016年发布的Uboot来引导Linux4.1.15&#xff0c;配…...

threeJs实现裸眼3D小狗

一、实现效果 使用threeJs实现裸眼3D小狗&#xff0c;效果如下&#xff0c;其实如果将小狗换成建模小狗&#xff0c;效果更好&#xff0c;这个是模拟了一只小狗。 二、实现代码 代码如下&#xff1a; <!DOCTYPE html> <html> <head><title>星空小狗…...

ZYNQ笔记(二):MIO 、EMIO

版本&#xff1a;Vivado2020.2&#xff08;Vitis&#xff09; 任务&#xff1a;使用GPIO MIO 和 EMIO 实现按键 KEY 控制 LED&#xff08; 两个PL端LED、两个PS端KEY&#xff09; 目录 一、MIO 、EMIO 介绍 二、硬件设计 三、软件设计 四、效果 一、MIO 、EMIO 介绍 …...

Cygwin编译安装Acise

本文记录Windows下使用Cygwin编译安装Acise的流程。 零、环境 操作系统Windows11Visual Studio CodeVisual Studio Code 1.92.0Cygwin 一、工具及依赖 1.1 Visual Studio Code 下载并安装Visual Studio Code, 同时安装以下插件&#xff0c; Task Explorer Output Colorizer …...

ubuntu22.04 安装-ODBC驱动-SQLserver

1.ISO下载 中科大 Index of /ubuntu-releases/http://mirrors.ustc.edu.cn/ubuntu-releases/ 2.VMware Workstation创建虚拟机 3.更换清华源或者中科大的源 Ubuntu 24.04更换清华源_哔哩哔哩_bilibili 中科大镜像源&#xff1a; Ubuntu - USTC Mirror Help 清华源 ubuntu | 镜…...