用VS2005也能制作体积很小的Win32程序(2KB - 3KB)

拯救硬盘空间!VS2019最小化离线安装指南(附必备组件清单) 本文提供了Visual Studio 2019最小化离线安装的详细指南,帮助用户将安装包从庞大的40GB精简至8GB左右。通过使用`--layout`和`--add`命令行参数,开发者可以精准选择C++桌面开发、.NET或Python等必需工作负载,创建轻量化的离线部署包,从而大幅节省硬盘空间并提升在无网络或局域网环境下的部署效率。 阅读详情

话就不多说了,你一定能看懂。这里运行时库一定要指定为"多线程/MT",否则最后Release版本的程序在其他机器上无法运行. 命令行 /MT  或 这里指定自定义入口函数名 命令行 /entry:Start  或 //Win32控制台程序 //---------------------------------------------- //stdafx.h file //---------------------------------------------- #pragma once

#ifndef _WIN32_WINNT  #define _WIN32_WINNT 0x0501 #endif      

#include <Windows.h>

//---------------------------------------------- //console.cpp //----------------------------------------------

#include "stdafx.h" HANDLE hStdIn; HANDLE hStdOut; BOOL __stdcall CtrlHandler(DWORD CtrlType) {     if(CtrlType==CTRL_C_EVENT || CtrlType==CTRL_BREAK_EVENT)         CloseHandle(hStdIn);     return TRUE; } void Start() {     hStdIn = GetStdHandle(STD_INPUT_HANDLE);     hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);     SetConsoleMode(hStdIn,ENABLE_LINE_INPUT|ENABLE_ECHO_INPUT|ENABLE_PROCESSED_INPUT);     SetConsoleCtrlHandler(CtrlHandler,TRUE);     HANDLE hHeap = GetProcessHeap();     PVOID szBuffer = HeapAlloc(hHeap,HEAP_ZERO_MEMORY,1024);     DWORD dwBytesRead,dwBytesWrite;     while(TRUE){         if(!ReadConsole(hStdIn,szBuffer,1024,&dwBytesRead,NULL) || ((char*)szBuffer)[0] == 'q' )             break;         WriteConsole(hStdOut,szBuffer,dwBytesRead,&dwBytesWrite,NULL);     }     HeapFree(hHeap,HEAP_NO_SERIALIZE,szBuffer);     ExitProcess(0); }

//Windows程序 //---------------------------------------------------- //stdafx.h //---------------------------------------------------- #ifndef WINVER     #define WINVER 0x0501   #endif

#ifndef _WIN32_WINNT   #define _WIN32_WINNT 0x0501  #endif      

#ifndef _WIN32_WINDOWS   #define _WIN32_WINDOWS 0x0410 #endif

#ifndef _WIN32_IE    #define _WIN32_IE 0x0600  #endif

#define WIN32_LEAN_AND_MEAN  

#include <Windows.h> //---------------------------------------------------- // winapp.cpp //----------------------------------------------------

#include "stdafx.h" void __stdcall Start() {     MessageBoxA(NULL,"Hello World!","?",MB_OK);     ExitProcess(0); }
// Release版本 //制作Win32 - DLL文件的方法与前面相同 以上仅使用Windows标准库,最后生成的程序只有 3KB大小,基本上和汇编写的程序大小差不多了.    如果要再小点,我们可以把 只读数据、导入表以及导出表节.rdata与代码节.text合并。(这里提到的节区是以VC编译器为准,不同的编译器对节的命名也许会有些不同) 连接器命令行添加 /merge:.rdata=.text 或 现在再看看大小 :(  2KB 了。
VS2010绿色精简 无需设置环境变量 立即下载

相关推荐

VS2015下使用纯WIN32 API写的Hello World代码及程序!(C/C++最小版本)

VS2015下使用纯WIN32 API写的Hello World!基本上算是C/C++能写到的最小版本。资源包含工程文件、源代码文件及生成的32/64位的EXE文件

VC++下编译出极小的程序

参考链接

dingxz105090的专栏 300

最简单Win32程序

一个最简单的Win32程序,作为学习d3d11的开始。

1小时验证开发想法:VS2022最小化安装方案

作为经常需要快速验证技术方案的开发者,我发现完整安装VS2022动辄占用30GB+空间,而实际原型开发可能只用得到10%的功能。最近摸索出一套极简安装方法,配合自制配置工具,能将安装体积控制在5GB内,且完整保留.NET Core、C++和Python的核心开发能力。| 完整安装 | 32GB | 45s | 企业级开发 || 最小配置 | 4.7GB | 12s | 原型验证 || 方案类型 | 安装大小 | 启动速度 | 适用场景 |预置.gitignore文件避免误提交。

OnyxPanther23的博客 692

使用 Win32 API 编写的一个功能强大的程序(187kb)

使用 Win32 API 编写的一个功能强大的程序(187kb)

体积最小的cmd.exe

windows 体积最小的cmd.exe , 仅仅81KB!!不容错过! 摘自windows2000server!

011-Win32 编程基础入门及实例

Win32API是开发Windows应用程序的核心接口集,尽管现代开发框架如.NET和WPF更为高级,但Win32API在需要高性能和低级别系统访问的场景中仍不可替代。本文介绍了Win32编程的基础知识,包括Win32API的组成部分、应用程序的基本结构、开发环境搭建,并通过实例展示了如何创建Win32应用程序。文章详细解析了窗口过程、WinMain函数、消息循环等关键部分,并介绍了GDI绘图、控件使用、菜单和对话框的创建与处理。此外,还探讨了多线程编程、文件和注册表操作、资源使用等进阶主题,并通过一个简单

小宝哥Code的专栏 1958

LDPC码介绍:基础&编码&译码

本博客介绍了LDPC码的基本原理,其中包括校验矩阵的构造、Tanner 图和编译码的基础知识。

渺小的颗星的博客 4311

使VC生成最小的可执行文件

//2000-09-09 16:38:36#include "stdafx.h"#include #pragma comment(linker, "/subsystem:windows")#pragma comment(lib,"kernel32.lib")#pragma comment(lib,"user32.lib")// 作用: 指定节对齐为16字节#pragma comment(linker, "/align:16")#pragma comment(linker, "/filealign:16")/

wanchuanhua的专栏 729

Ubuntu 20.04下大陆ARS408毫米波雷达点云数据采集与RVIZ实时可视化全流程解析

本文详细解析了在Ubuntu 20.04系统下,如何实现大陆ARS408毫米波雷达的点云数据采集与RVIZ实时可视化全流程。内容涵盖硬件连接、ROS Noetic环境搭建、CAN接口配置、数据验证及自动化脚本编写,为机器人感知、自动驾驶等领域的开发者提供了一套稳定、实用的实战方案。

bash7scripter的博客 699

使用R语言(ggplot2)绘制KEGG信号通路富集气泡图

本文详细介绍了如何使用R语言的ggplot2包绘制KEGG信号通路富集气泡图,从数据预处理到高级定制技巧,帮助生物信息学研究者直观展示富集分析结果。文章涵盖了气泡图的核心绘制方法、布局优化、常见问题解决方案以及交互式可视化扩展,是进行KEGG富集分析可视化的实用指南。

weixin_42625070的博客 450

一个自己写作的一个小的程序

因为是一些不算是很高深的东西,虽然Python人们想到的第一点就是他的爬虫,但是Python真正的用处是在他的兼容性以及人工智能开发方向。 一个很小的项目,需要额外下载的扩展库 urllib bs4 selenium 把代码的文件格式的分布先放在这里 FM(界面方法) import tkinter as tk from tkinter import ttk from tkinter import * from ZhSQL import * from MySQL import * def finct

weixin_43589736的博客 317

【AAOS】【源码分析】用户管理(五)-- MUMD介绍

MUMD(多用户多屏显示)是Android Automotive OS为车载多乘员场景设计的功能,支持不同座位用户独立操作各自屏幕。

码农的历程 1514

一个简单的Win32程序

一、Windows消息机制 1、 消息是什么 Windows程序的运行是依靠外部的事件来驱动。换句话说,程序不断等待,等待任何可能的输入,然后做出判断,再做适当的处理。前面的“输入”是指操作系统发送给程序的消息。消息,其实就是系统内设的一种数据结构。 typedef struct MSG { HWND hwnd;//hwnd 是窗口的句柄,这个参数将决定由哪个窗口过程函数对...

HHHUANG 3488

BetaFlight开源飞控源码分析

BetaFlight是穿越机领域比较成熟的开源飞控,本篇文章主要分析一下源代码以及如何使用这个开源代码

weixin_43811044的博客 1万+

[Dify实战] 品牌舆情速览:多渠道抓取、聚类情绪、生成日报-带绑定资源

摘要: 品牌舆情监测面临多渠道信息分散、手工处理效率低的痛点。Dify舆情速览助手通过自动化流程(数据抓取→情绪聚类→日报生成)帮助快速识别热点与风险。方案核心包括: 结构化处理:按情绪(正/中/负)聚类,分级标注风险事件; 日报输出:含热点摘要、趋势分析及处置建议(动作+团队+时间窗口); 质量控制:数据去噪、黑名单过滤,结合人工复核确保合规性。 落地需明确数据源分级(如权威媒体优先)、设置情绪阈值,并建立"发现-响应-复盘"闭环机制,提升舆情应对效率。 (字数:150)

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 300

创建一个最简单的win32应用程序

创建一个最简单的win32应用程序 使用的是vs2013 中文版 首先创建一个win32 应用程序 工程 也可以使用快捷键 Ctrl+Shift +N 创建的工程名字是 HelloApp 下一步 建立一个空项目 创建后的工程如下: 添加一个.cpp文件 设置cpp文件的名字为hello.cpp 其中加入如下代码: #include int WI

abc 7437

逆变器、转换器、DCDC、继电器等器件的原理和作用

交流电变成直流电的过程:整流==》滤波==》稳压。

m0_61973119的博客 8031

No MFC 编程01 - 最精简的 win32 程序 (转)

No MFC 编程01 - 最精简的 win32 程序 (转)[@more@]这里介绍不用 mfc 的 win32 编程 下面要用 vc 做一个最精简的 Win32 程序,请不要见笑,可以用来做框架嘛! 第一阶段:...

csd3176的博客 136

芒果YOLOv8改进165:损失函数angleLoss:即插即用 | 独家首发原创新颖|公开数据集DOTA高效无损涨点0.5% | 旋转检测

YOLOv8改进:旋转检测Loss损失函数angleLoss:即插即用 | 独家首发原创新颖|公开数据集DOTA高效无损涨点0.5%

包括YOLOv5、YOLOv7、YOLOv8等模型改进 1155

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain&#39;s apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath(&#39;DeepLearnToolbox&#39;));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand(&#39;state&#39;,0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = &#39;sigm&#39;;%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, &#39;Too big error&#39;);```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, &#39;Too big error&#39;);```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Visual Studio 2017(vs2017)绿色便携版-北桃特供

该绿色便携版是脚本自动安装的,安装速度非常的快;如果你在网络上找到的其他vs2017绿色版或便携版在使用中报一些莫名奇妙的错误,你可以试试这个版本。这个版本我在实际使用时,非常的稳定流畅。该版本是精简过的vs2017,且简化了原来的安装程序,特别适用于教学、个人开发者、某些要求不高的企业。1.首先解压该文件到本地“D:\vs2017”,解压后目录结构如图,然后进入“Visual Studio 2017”目录。4.安装后,我们可以在C盘看到多了一个“greentools”目录,vs2017就在里面;

itaoest的博客 6531

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Python+Agent入门笔记(六):记忆和状态,从“一次性问答”到“能用助手”

滑动窗口的缺点很明显:被扔掉的信息就真没了。如果用户第一轮说“我不吃辣”,隔了二十轮让他推荐餐厅,模型已经忘了。定期把旧的对话压缩成一段总结,作为一条特殊的消息插进去。"""把除 system 和最近 keep_recent 条以外的消息,压缩成一条摘要。返回新的 messages 列表。"""# 把旧消息拼成纯文本,让模型总结content = f"[工具结果]把除 system 和最近 keep_recent 条以外的消息,压缩成一条摘要。返回新的 messages 列表。

qq_41241612的博客 113

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

上一篇: 在内存中运行可执行程序
下一篇: 截取系统 API 调用
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值