话就不多说了,你一定能看懂。这里运行时库一定要指定为"多线程/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 了。
相关推荐
VS2015下使用纯WIN32 API写的Hello World代码及程序!(C/C++最小版本)
VS2015下使用纯WIN32 API写的Hello World!基本上算是C/C++能写到的最小版本。资源包含工程文件、源代码文件及生成的32/64位的EXE文件
VC++下编译出极小的程序
参考链接
最简单Win32程序
一个最简单的Win32程序,作为学习d3d11的开始。
1小时验证开发想法:VS2022最小化安装方案
作为经常需要快速验证技术方案的开发者,我发现完整安装VS2022动辄占用30GB+空间,而实际原型开发可能只用得到10%的功能。最近摸索出一套极简安装方法,配合自制配置工具,能将安装体积控制在5GB内,且完整保留.NET Core、C++和Python的核心开发能力。| 完整安装 | 32GB | 45s | 企业级开发 || 最小配置 | 4.7GB | 12s | 原型验证 || 方案类型 | 安装大小 | 启动速度 | 适用场景 |预置.gitignore文件避免误提交。
使用 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绘图、控件使用、菜单和对话框的创建与处理。此外,还探讨了多线程编程、文件和注册表操作、资源使用等进阶主题,并通过一个简单
LDPC码介绍:基础&编码&译码
本博客介绍了LDPC码的基本原理,其中包括校验矩阵的构造、Tanner 图和编译码的基础知识。
使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")/
Ubuntu 20.04下大陆ARS408毫米波雷达点云数据采集与RVIZ实时可视化全流程解析
本文详细解析了在Ubuntu 20.04系统下,如何实现大陆ARS408毫米波雷达的点云数据采集与RVIZ实时可视化全流程。内容涵盖硬件连接、ROS Noetic环境搭建、CAN接口配置、数据验证及自动化脚本编写,为机器人感知、自动驾驶等领域的开发者提供了一套稳定、实用的实战方案。
使用R语言(ggplot2)绘制KEGG信号通路富集气泡图
本文详细介绍了如何使用R语言的ggplot2包绘制KEGG信号通路富集气泡图,从数据预处理到高级定制技巧,帮助生物信息学研究者直观展示富集分析结果。文章涵盖了气泡图的核心绘制方法、布局优化、常见问题解决方案以及交互式可视化扩展,是进行KEGG富集分析可视化的实用指南。
一个自己写作的一个小的程序
因为是一些不算是很高深的东西,虽然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
【AAOS】【源码分析】用户管理(五)-- MUMD介绍
MUMD(多用户多屏显示)是Android Automotive OS为车载多乘员场景设计的功能,支持不同座位用户独立操作各自屏幕。
一个简单的Win32程序
一、Windows消息机制 1、 消息是什么 Windows程序的运行是依靠外部的事件来驱动。换句话说,程序不断等待,等待任何可能的输入,然后做出判断,再做适当的处理。前面的“输入”是指操作系统发送给程序的消息。消息,其实就是系统内设的一种数据结构。 typedef struct MSG { HWND hwnd;//hwnd 是窗口的句柄,这个参数将决定由哪个窗口过程函数对...
BetaFlight开源飞控源码分析
BetaFlight是穿越机领域比较成熟的开源飞控,本篇文章主要分析一下源代码以及如何使用这个开源代码
[Dify实战] 品牌舆情速览:多渠道抓取、聚类情绪、生成日报-带绑定资源
摘要: 品牌舆情监测面临多渠道信息分散、手工处理效率低的痛点。Dify舆情速览助手通过自动化流程(数据抓取→情绪聚类→日报生成)帮助快速识别热点与风险。方案核心包括: 结构化处理:按情绪(正/中/负)聚类,分级标注风险事件; 日报输出:含热点摘要、趋势分析及处置建议(动作+团队+时间窗口); 质量控制:数据去噪、黑名单过滤,结合人工复核确保合规性。 落地需明确数据源分级(如权威媒体优先)、设置情绪阈值,并建立"发现-响应-复盘"闭环机制,提升舆情应对效率。 (字数:150)
创建一个最简单的win32应用程序
创建一个最简单的win32应用程序 使用的是vs2013 中文版 首先创建一个win32 应用程序 工程 也可以使用快捷键 Ctrl+Shift +N 创建的工程名字是 HelloApp 下一步 建立一个空项目 创建后的工程如下: 添加一个.cpp文件 设置cpp文件的名字为hello.cpp 其中加入如下代码: #include int WI
逆变器、转换器、DCDC、继电器等器件的原理和作用
交流电变成直流电的过程:整流==》滤波==》稳压。
No MFC 编程01 - 最精简的 win32 程序 (转)
No MFC 编程01 - 最精简的 win32 程序 (转)[@more@]这里介绍不用 mfc 的 win32 编程 下面要用 vc 做一个最精简的 Win32 程序,请不要见笑,可以用来做框架嘛! 第一阶段:...
芒果YOLOv8改进165:损失函数angleLoss:即插即用 | 独家首发原创新颖|公开数据集DOTA高效无损涨点0.5% | 旋转检测
YOLOv8改进:旋转检测Loss损失函数angleLoss:即插即用 | 独家首发原创新颖|公开数据集DOTA高效无损涨点0.5%
深度学习工具包 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'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('DeepLearnToolbox'));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('state',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'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',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 = 'sigm';%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, 'Too big error');```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('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';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)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';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, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% 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'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 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, 'Too big error');```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('state',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, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',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, 'Too big error');%% ex3 neural net with dropoutrand('state',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, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % 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, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % 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, 'Too big error');%% 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('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % 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, 'Too big error');```[](https://bitdeli.com/free "Bitdeli Badge")
Visual Studio 2017(vs2017)绿色便携版-北桃特供
该绿色便携版是脚本自动安装的,安装速度非常的快;如果你在网络上找到的其他vs2017绿色版或便携版在使用中报一些莫名奇妙的错误,你可以试试这个版本。这个版本我在实际使用时,非常的稳定流畅。该版本是精简过的vs2017,且简化了原来的安装程序,特别适用于教学、个人开发者、某些要求不高的企业。1.首先解压该文件到本地“D:\vs2017”,解压后目录结构如图,然后进入“Visual Studio 2017”目录。4.安装后,我们可以在C盘看到多了一个“greentools”目录,vs2017就在里面;
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 列表。
LinePhone3.2.7(android端最新版本) sip客户端
SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/
假人有限元模型
假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用
这里指定自定义入口函数名 命令行 /entry:Start 或
//Win32控制台程序
//----------------------------------------------
//stdafx.h file
//----------------------------------------------
#pragma once
现在再看看大小 :( 2KB 了。
300



被折叠的 条评论
为什么被折叠?



