怎样使用 Visual C++ 编译出只有 1536 字节的窗口程序

llama.cpp本地推理实战:GGUF量化与CUDA配置指南 LLM本地推理是指在终端设备上直接运行大语言模型,无需依赖云端API。其核心原理在于模型量化压缩与硬件加速协同优化,关键技术价值体现在低延迟、高确定性与跨平台一致性。典型应用场景包括边缘AI质检、离线知识库、嵌入式智能终端等。GGUF格式作为专为llama.cpp设计的模型容器,不仅封装权重,更内嵌硬件适配策略与内存调度指令;而Windows11下CUDA支持则需精准匹配MSVC与CUDA Toolkit版本,并通过CMake显式指定计算架构。本文深入解析Q4_K_M等量化等级的工程含义及实测性能边界。 阅读详情
//题目:怎样使用 Visual C++ 编译出只有 1536 字节的窗口程序
//这些技巧都是dREAMtHEATER老大哥告我的……
//编译出来后,文件大小为: 1536 字节


////////////////////////////////////////////////////////////////////////////////////////////////////
//预处理

#include <Windows.h>

//使用了下面的预处理,编译连接时必须是 Release 方式,否则不能通过


//自定义程序入口,如果要优化,推荐使用这个
//如果使用 VS.NET,也可以这样设置:在“解决方案管理器”里选定项目,右击,选择“属性”->“链接器”->“高级”->“入口点”
//VC 6里面也有类似的设置,但具体不记得了
//项目属性的其它设置可以仔细看看,其它优化也都在这里可以设置

#pragma comment(linker, "/ENTRY:EntryPoint")


//下面是调整段对齐,默认是 4K,在 Win98 下能更快地装入 PE 文件,但会增加 PE 文件的大小
//下面这一行在这里好像会说是“无效的指令”什么的,故在这里也注释掉了,也许是段太小的原因吧。
//直接在工程选项里面设置:项目“属性”->“链接器”->“优化”->“Windows98 优化”->“否 (/OPT:NOWIN98)”
//#pragma comment(linker, "/OPT:NOWIN98")


//下面的优化是段合并,不推荐使用,在很多程序里也许也许不能使用

#pragma comment(linker, "/SECTION:MiniPE,")             //创建自定义的 MiniPE Section
#pragma comment(linker, "/MERGE:.data=MiniPE")  //合并.data Section 到 MiniPE Section
#pragma comment(linker, "/MERGE:.text=MiniPE")  //合并.text Section 到 MiniPE Section
#pragma comment(linker, "/MERGE:.rdata=MiniPE") //合并.rdata Section 到 MiniPE Section
////////////////////////////////////////////////////////////////////////////////////////////////////



////////////////////////////////////////////////////////////////////////////////////////////////////
//全局变量

HWND                                    g_hWnd;         //主窗口句柄,一般程序中经常用到此变量,故使用全局变量
HINSTANCE                               g_hInst;        //应用程序进程句柄,一般程序中经常用到此变量,故使用全局变量

const char                              c_szAppName[] = "MiniPE";
////////////////////////////////////////////////////////////////////////////////////////////////////



////////////////////////////////////////////////////////////////////////////////////////////////////
//函数声明

LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int iCmdShow);
////////////////////////////////////////////////////////////////////////////////////////////////////




////////////////////////////////////////////////////////////////////////////////////////////////////
//入口函数
//使用我们自己的入口函数,而不用连接器默认提供的一大堆程序初始化操作的代码
//为了在一个普通的 Win32SDK 程序里能使用这种方法,下面的函数将调用 WinMain() 函数,并给出相应的参数

void EntryPoint()
{
       ExitProcess(WinMain(GetModuleHandle(NULL), NULL, GetCommandLine(), SW_SHOWNORMAL));
}
////////////////////////////////////////////////////////////////////////////////////////////////////



////////////////////////////////////////////////////////////////////////////////////////////////////
//主函数

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int iCmdShow)
{
       MSG                                             sMsg;
       WNDCLASSEX                              sWndClassEx;


       g_hInst = hInstance;

       sWndClassEx.cbSize = sizeof(WNDCLASSEX);
       sWndClassEx.style = CS_VREDRAW | CS_HREDRAW;
       sWndClassEx.lpfnWndProc = (WNDPROC) WindowProc;
       sWndClassEx.cbClsExtra = 0;
       sWndClassEx.cbWndExtra = 0;
       sWndClassEx.hInstance = g_hInst;
       sWndClassEx.hIcon = LoadIcon(NULL, IDI_APPLICATION);
       sWndClassEx.hCursor = LoadCursor(NULL, IDC_ARROW);
       sWndClassEx.hbrBackground = (HBRUSH) (COLOR_WINDOW);
       sWndClassEx.lpszMenuName = NULL;
       sWndClassEx.lpszClassName = c_szAppName;
       sWndClassEx.hIconSm = NULL;
       RegisterClassEx(&sWndClassEx);

       g_hWnd = CreateWindowEx(0, c_szAppName, c_szAppName, WS_OVERLAPPEDWINDOW,
               CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
               NULL, NULL, g_hInst, NULL);
       ShowWindow(g_hWnd, iCmdShow);
       UpdateWindow(g_hWnd);

       while (GetMessage(&sMsg, NULL, 0, 0))
       {
               TranslateMessage(&sMsg);
               DispatchMessage(&sMsg);
       }
       return((int) sMsg.wParam);
}
////////////////////////////////////////////////////////////////////////////////////////////////////



////////////////////////////////////////////////////////////////////////////////////////////////////
//主窗口回调函数

LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
       switch (uMsg)
       {
       case WM_DESTROY:
               PostQuitMessage(0);
               break;

       default:
               return(DefWindowProc(hWnd, uMsg, wParam, lParam));
       }
       return(0);
}
////////////////////////////////////////////////////////////////////////////////////////////////////
PostgreSQL原生向量搜索:pgvector零迁移实战指南 向量搜索是AI应用的核心能力之一,其本质是在高维空间中进行近似最近邻(ANN)检索。传统方案依赖独立向量数据库,但引入数据双写、权限割裂与运维复杂度等工程风险。pgvector作为PostgreSQL官方扩展,通过原生数据类型、SIMD优化的距离运算符和标准索引访问方法(IVFFLAT/HNSW),将向量能力无缝嵌入现有关系型基础设施。它不改变事务模型、不新增服务组件、不破坏备份与监控体系,真正实现SQL级语义检索与业务逻辑的深度耦合。适用于已有成熟PostgreSQL生态、强调数据一致性与合规审计的中大型 阅读详情

相关推荐

【信息科学与工程学】【数据中心】第三十五篇 云计算数据中心的学科知识04

编号学科(课程)核心知识点在云计算/云存储/云网络/云安全/云MaaS中的作用代表教材/资料/论文 + 数学方程式列表工业界应用D1421​云原生数据库:TiDB​HTAP(混合事务/分析处理)、分布式SQL、水平扩展、强一致(Raft)、自动故障恢复、与MySQL兼容、TiFlash列式引擎提供弹性扩展的分布式数据库;支撑高并发在线交易与实时分析教材:《TiDB in Action》PingCAP(2020) 论文:《TiDB: A Raft-based HTAP Database》(2017)

weixin_49199313的博客 406

以太网帧长度1518、1522、1536的说明

一、IEEE802.3 以太网帧结构: Preamble(7-bytes)--前导码 StartFrameDelimiter(1-byte)--定界符 Dest.MACAddress(6-bytes)--目的地址 SourceMACAddress(6-bytes)--源地址 Length/Type(2-bytes)--长度或帧类型 Data

WCG的博客 2万+

基于PaddleOCR的离线多语言OCR SDK:从模型优化到跨平台部署实战

OCR(光学字符识别)技术是实现图像文字自动提取的关键,其核心原理是通过深度学习模型对图像中的文本区域进行检测与识别。这项技术的价值在于将非结构化的图像信息转化为可编辑、可搜索的文本数据,极大地提升了信息处理效率。在数据安全要求高、网络环境不稳定或需要深度集成的应用场景中,离线OCR SDK成为刚需。本文聚焦于如何将PaddleOCR这一优秀的开源多语言OCR引擎,通过模型量化、架构封装与跨平台构建,打造为一个轻量级、易集成的离线SDK,解决了部署复杂和依赖繁重等工程难题,为桌面应用、移动端App及边缘设备

weixin_34050005的博客 470

RTMP握手协议及lal RTMP握手实现解析

RTMP握手协议及lal RTMP握手实现解析

努力努力再努力L 943

F2MC-8L8FX开发环境部署全指南:SOFTUNE Workbench安装与调试

F2MC-8L8FX是富士通经典8位单片机,广泛应用于工业控制、汽车电子等长生命周期设备中;其配套开发工具SOFTUNE Workbench并非通用IDE,而是一套深度绑定硬件、操作系统与许可证的封闭式嵌入式开发环境。理解其底层驱动依赖(如F2MC8L.sys)、芯片型号与编译器版本精确匹配机制,以及Windows 7 32位系统级兼容要求,是成功部署的前提。该环境的核心技术价值在于维持老旧产线固件的可维护性与可修复性,支撑工业设备延寿升级、备件保障与现场应急修复等关键场景。本文围绕SOFTUNE Work

weixin_29194693的博客 335

【Gazebo安装指南】Ubuntu22.04LTS环境下的高效配置与常见问题解决

本文提供了在Ubuntu 22.04 LTS系统上高效安装和配置Gazebo仿真环境的详细指南。针对Gazebo Classic版本,文章对比了通过ROS 2仓库和Ubuntu官方仓库两种主流安装方法,并重点解决了安装过程中常见的软件包定位、模型下载及图形驱动等问题,帮助用户快速搭建稳定的机器人仿真开发环境。

weixin_29279101的博客 437

异步 IO

异步 IO 节省了大量的时间,gi

lizhihaoweiwei的专栏 748

基于奥比中光Orbbec Astra Pro与ROS实现实时3D环境建模:orb_slam2实战指南

本文提供了一份详细的实战指南,介绍如何使用奥比中光Orbbec Astra Pro深度摄像头与ROS系统,部署并运行ORB-SLAM2算法,实现实时3D环境建模与定位。内容涵盖从驱动安装、环境配置、算法编译到摄像头标定与性能调优的全流程,旨在帮助开发者快速搭建一套高性价比的视觉SLAM系统。

weixin_29054399的博客 335

以太网帧格式的区分

以太网帧格式,分为以下两种:Ethernet II           IEEE802.3length/type &gt;=1536     Ethernet IIlength/type &lt;=1500     IEEE 802.3

None31994的博客 4337

HTML5网页基础设计——课程介绍专栏

案例: 参考代码: <!doctype html> <html> <head> <meta charset="utf-8"> <title>动手实践</title> <style> *{ margin: 0; padding: 0; font-size:14px; } dd{ width: 461px; height: 145px; margin: -4px; pad.

shengming_tutou的博客 4594

《揭秘 BME688人工智能压力湿度温度气体传感器:气体检测的多面能手》:此文为AI自动生成

BME688 是博世推出的一款具有人工智能和集成高线性度高精度压力、湿度、温度传感器的气体传感器,专为移动和联网应用开发,尺寸紧凑且低功耗。BME688 作为一款先进的传感器,在多个领域展现出卓越的性能。它采用了坚固而紧凑的 3.0 x 3.0 x 0.9 mm³ 封装,这种小巧的尺寸使其能够轻松应用于对空间要求严格的移动设备和联网应用中。同时,低功耗的特性也使得它在能源有限的环境下能够长时间稳定运行。

zheng_ruiguo的专栏 1931

windows程序设计 消息循环

The Message Loop A programretrieves these messages from the message queue by executing a block of codeknown as the "message loop": while (GetMessage (&msg, NULL, 0,0)) { TranslateMessage (&msg) ;

梦幻DUO的游戏开发之路 597

基于 YOLOv26 的金属表面缺陷检测系统:智能视觉质检方案

摘要: 基于YOLOv26的金属表面缺陷检测系统采用深度学习技术,实现对划痕、裂纹、腐蚀等8类常见缺陷的自动化检测。系统通过数据增强预处理和YOLOv26模型的高精度识别能力,具备多类别分类、实时推理和强鲁棒性特点,适用于不同金属材质与光照条件。架构包含数据采集、预处理、YOLOv26检测和后处理模块,代码实现采用PyTorch框架,支持训练数据增强与标准化处理,为工业质检提供高效智能解决方案。

一键难忘的博客 589

Visual C++ 编译出只有 1536 字节的窗口程序

//预处理 #include //使用了下面的预处理,编译连接时必须是 Release 方式,否则不能通过 //自定义程序入口,如果要优化,推荐使用这个 //如果使用 VS.NET,也可以这样设置:在“解决方案管理器”里选定项目,右击,选择“属性”->“链接器”->“高级”->“入口点” //VC 6里面也有类似的设置,但具体不记得了 //项目属性的其它设置可以仔细看看,其它优化也都在这里可以设

740

PointNet++改进策略 :模块改进 | x-Conv | PointCNN, 结合局部结构与全局排列提升模型性能

这篇论文介绍了一种名为PointCNN的方法,旨在从点云(point cloud)数据中学习特征。传统卷积神经网络(CNN)在处理规则网格数据(如图像)时非常有效,但由于点云是无序且不规则的,直接在其上应用卷积操作会导致形状信息丢失,并对点的排列顺序敏感。为了解决这一问题,论文提出了一种X-Conv操作。该方法通过学习一种来重新排列点云中的点并加权输入特征。然后,将典型的卷积操作应用于转换后的特征。这种方法将传统的 CNN 扩展到点云特征学习,并命名为PointCNN。

u012901740的博客 2300

100天精通Python(可视化篇)——第98天:Pyecharts绘制多种炫酷日历图参数说明+代码实战

一、日历图介绍 二、基础配置 1. 配置项类 2. 添加函数 3. 日期标签配置 4. 坐标系配置 三、日历图实战 1. 基础日历图 2. 日历热图

努力让自己发光,对的人才能迎着光而来 2万+

VC++编译1.5K的窗口程序

//题目:怎样使用   Visual   C++   编译出只有   1536   字节的窗口程序//这些技巧都是dREAMtHEATER老大哥告我的……//编译出来后,文件大小为:   1536   字节    /////////////////////////////////////////////////////////////////////////////////////////////

benny5609的专栏 700

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

减小文件体积

第一个办法是看雪抄来的,我测试是通过 ----------------------------------------------------------- 标 题:怎样使用 Visual C++ 编译出只有 1536 字节的窗口程序 发信人:Yonsm  时 间:02/09/20 08:20pm 详细信息: //题目:怎样使用 Visual C++ 编译出只有 1536 

海阔天空 851

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

大模型量化从0到1(九):用 llama.cpp 把模型转成 GGUF 并跑本地推理

这篇文章详细介绍了如何将HuggingFace模型转换为GGUF格式并进行量化推理的完整流程。主要内容包括: 整体流程:从HuggingFace模型到GGUF格式转换(FP16),再进行量化压缩,最后本地推理运行 关键步骤: 编译安装llama.cpp工具链 使用convert_hf_to_gguf.py脚本将模型转换为FP16的GGUF格式 用llama-quantize工具进行不同档位的量化(推荐Q4_K_M) 通过llama-cli进行本地CPU/GPU推理 实用技巧: 支持一次转换多个量化档位 提供

weixin_49520696的博客 454

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

OpenClaw+Qwen3.5:本地化长上下文推理新范式

大语言模型的上下文长度限制是制约其办公落地的核心瓶颈,传统方案依赖扩大token窗口或牺牲响应速度,本质仍是静态内存管理。OpenClaw提出动态语义空间建模,将上下文从固定窗口升级为可回溯、可分片、按需加载的‘语义工作台’,依托轻量路由模型与FlashAttention-2优化,在不修改Qwen3.5权重的前提下实现跨文档、跨会话的高相关性召回。该技术显著降低硬件门槛(RTX3060即可运行),提升长文档处理稳定性与工程可用性,适用于合同审阅、技术比对、会议纪要等真实办公场景,是面向本地化部署的上下文感知

weixin_33812433的博客 472

PostgreSQL向量搜索革命:pgvector扩展深度解析与实践指南

在人工智能和机器学习快速发展的今天,向量数据已成为现代应用的核心组成部分。pgvector作为PostgreSQL的开源向量相似度搜索扩展,为开发者提供了在关系型数据库中存储和查询高维向量的完整解决方案。本文将深入探讨pgvector的技术原理、实战应用和性能优化策略,帮助您构建高效的向量数据库应用。 ## 向量搜索的核心概念与原理 向量搜索的本质是在高维空间中寻找最相似的向量。传统的关系型数

gitblog_00113的博客 687

GPU与CPU分工原理:从CUDA报错看并行计算本质

并行计算是现代AI与高性能计算的基石,其核心在于任务如何在CPU与GPU间合理拆分。CPU擅长低延迟、强分支、异构任务调度,GPU则专精于高吞吐、规则化、数据并行的数学运算。这种差异源于二者底层架构:CPU依赖复杂流水线与缓存一致性,GPU采用SIMT模型与Warp级同步。CUDA并非简单加速库,而是涵盖驱动、运行时与编译器的完整协同系统,负责内存管理、Kernel调度与版本对齐。典型问题如'no kernel image available'实为CUDA Toolkit、PyTorch二进制包与GPU计算

weixin_30410119的博客 620

7-Zip ZS深度解析:六种现代压缩算法的完整实战指南

在数据爆炸式增长的数字时代,压缩工具的性能直接关系到存储效率与传输速度。7-Zip ZS(7-Zip-zstd)作为经典7-Zip的增强版本,集成了Zstandard、Brotli、LZ4、Lizard、LZ5和Fast-LZMA2六种现代压缩算法,为技术爱好者和专业用户提供了前所未有的压缩效率与灵活性。本文将深入解析7-Zip ZS的核心架构,提供完整的实战应用方案,帮助您充分利用这一强大的压缩

gitblog_00618的博客 684

7-Zip ZS终极指南:解锁新一代压缩算法的完整技术解析与实战应用

在数据爆炸式增长的时代,传统压缩工具在面对海量数据处理时往往力不从心。你是否曾因压缩速度太慢而等待数小时?是否因压缩率不足而频繁更换存储设备?是否因算法选择单一而无法针对特定场景优化?7-Zip ZS(7-Zip-zstd)正是为解决这些痛点而生的新一代压缩工具,它集成了Zstandard、Brotli、LZ4、Lizard、LZ5和Fast-LZMA2六种现代压缩算法,为技术爱好者和进阶用户提供

gitblog_00628的博客 1102

深入理解NVIDIA GPU SM架构与CUDA编程核心优化

GPU并行计算是现代高性能计算的核心技术,其性能发挥依赖于对底层硬件架构的深刻理解。NVIDIA GPU的流式多处理器(SM)是执行计算任务的基本单元,它通过CUDA核心、线程束调度器、共享内存等组件协同工作。理解SM的运作原理,对于实现高效并行计算至关重要,能够帮助开发者将硬件潜力最大化。CUDA编程模型将计算任务组织成网格、线程块和线程的层次结构,并映射到SM硬件上执行。掌握内存层次结构,特别是全局内存的合并访问与共享内存的高效使用,是优化CUDA程序性能的关键。这些技术广泛应用于深度学习训练、科学计算

weixin_33747129的博客 413
上一篇: 中国共享软件如何进军海外市场完全指导手册
下一篇: 病毒基础系列-API函数地址的获取
doskey
博客等级 码龄25年 6粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值