vc的编译参数优化

Qt 5.15.0编译实战:从零构建到IDE无缝集成的完整指南 本文详细介绍了Qt 5.15.0的编译实战指南,从环境准备、源码获取到IDE无缝集成,提供了完整的编译流程和优化技巧。涵盖Windows平台下的Visual Studio配置、Qt Creator整合及常见问题解决方案,帮助开发者高效构建Qt开发环境。 阅读详情
/*
      Author: void#ph4nt0m.org
*/

// 编译器 cl.exe(Visual C++ 6.0)
// 没有做任何优化情况下,编译大小为:16K
// 编译优化后: 1K (用16进制编辑器把尾部的0x00去掉: 712bytes)
#include <windows.h>
#pragma comment(lib,
"kernel32.lib")

// 作用: 指定节对齐为512字节
#pragma comment(linker, "/align:512")

// 作用: 合并节
// 将.data节和.rdata节合并到.text节(代码节)
#pragma comment(linker, "/merge:.data=.text")
#pragma comment(linker, 
"/merge:.rdata=.text")

// 作用: 指定子系统为windows (和优化无关)
// vc编译器默认是console,会有个黑糊糊的CMD窗口,不好看.用windows就好了
#pragma comment(linker, "/subsystem:windows")

// 作用: 指定入口函数
// 子系统为windows的默认入口点WinMain和console的默认入口点main,都会引入一段启动stub代码,指定入口函数可去掉之.
#pragma comment(linker, "/ENTRY:main")


//int WinMain(HINSTANCE current, HINSTANCE prev, LPSTR cmdline, int showcmd)

// 作用: 去掉函数的栈帧代码,纯属吹毛求疵:-)
// 即函数开头的push ebp / mov ebp, esp和结尾的pop ebp / retn
__declspec(naked)
void main()
{
      
// 调用wmp. 这是按套路出牌的方法.
      
//typedef VOID (__stdcall *fnRunDllW)(HWND, HINSTANCE, LPCWSTR, DWORD);
      
//((fnRunDllW)GetProcAddress(LoadLibrary("msdxm.ocx"), "RunDllW"))(0,0,0,0);

    
// 不按套路出牌,不压入RunDllW的函数参数,直接调用.
      GetProcAddress(LoadLibrary("msdxm.ocx"), "RunDllW")();
      
// 注意此时的堆栈是不平衡的.
      
// 但是通过ExitProcess()退出自身,就不用去考虑平衡了.
      ExitProcess(0);
}
 
告别VS臃肿启动!用cl.exe在普通CMD编译C++的完整环境配置指南(VS2019/2022适用) 本文详细介绍了如何在Windows系统中通过配置cl.exe环境变量,实现在普通CMD中直接编译C++代码,避免Visual Studio的臃肿启动。内容包括环境变量设置、路径配置、编译验证及高级技巧,适用于VS2019/2022用户提升开发效率。 阅读详情

相关推荐

MATLAB2020B+VS2019环境配置避坑指南:解决C++编译器识别失败问题

本文详细解析MATLAB2020B与VS2019环境配置中C++编译器识别失败的常见问题,提供系统级环境变量配置、mex文件定制及MatConvNet专项优化方案。通过精确的环境检查和诊断工具,帮助开发者彻底解决编译器兼容性问题,确保深度学习开发环境稳定运行。

weixin_29042035的博客 400

静态分析:IDA逆向代码段说明 text、idata、rdata、data

通常IDA对一个PE文件逆向出来的代码中, 存在四个最基本的段text、idata、rdata、data, 四个段为PE文件的结构中对应的段。 一、text段: 该段位程序代码段,在该段一开始就可以看到: .text:00401000 ; Segment type: Pure code.text:00401000 ; Segment permissions: Read/Execute ...

weixin_30902251的博客 1080

C/C++编译器全局优化技术:全局优化是针对整个程序进行的优化,包括函数之间的优化

C/C++编译器全局优化技术:全局优化是针对整个程序进行的优化,包括函数之间的优化

探索C++编程的奥秘,分享深入的技术见解和实践,旨在激发读者创造力与解决问题的思维。 2386

VC编译出来的PE文件大小优化

#pragma optimize("data",on)#pragma comment(linker,"RELEASE")#pragma comment(linker,"/merge:.rdata=.data")#pragma comment(linker,"/merge:.text=.data")#pragma comment(linker,"/merge:.reloc=.data")#pragma comment(linker,"/merge:.data=.text") #pragma comment(l

咖啡屋 1271

经典VC6++英文简化版开发环境实战指南

VC6++或许已经老去,但它留下的遗产却无比珍贵:它教会我们尊重内存它逼我们理解底层它让我们明白每一个字节都有意义在这个动辄“框架至上”的时代,回头看看VC6++,就像重温一场纯粹的编程修行。无论你是正在维护 legacy 项目的工程师,还是想打牢基础的新手,掌握VC6++,不是为了停留在过去,而是为了更好地走向未来。所以,别急着把它扔进历史的垃圾桶——“真正的高手,能在任何环境下写出可靠的代码。—— 致敬每一位坚持在一线的开发者 💪。

weixin_42596011的博客 945

独立数组Drop工具DropArrayTB与VC运行库编译避坑指南

在Windows环境下处理数组数据时,C扩展编译失败和运行库缺失是高频痛点,其中cl.exe报错往往源于Visual C++运行库与编译环境不匹配。数组按条件丢弃、行压缩与内存整理是数据清洗中的基础操作,其底层实现依赖高效的掩码压缩与内存重映射。DropArrayTB作为独立封装的C层模块,通过单次遍历和memmove原地搬运,将批量删除复杂度降至线性,显著提升时序数据清洗、点云抽稀和特征矩阵降采样等场景的处理效率。同时,掌握VC运行库的动态与静态链接差异、64位对齐优化及ctypes集成方法,能有效规避V

weixin_28831341的博客 314

写壳1

写壳的步骤编写加壳器,加载被加壳程序和壳dll程序将 dll 程序中 .text 拷贝到被加壳程序将被加壳程序的 eip 指向stub 代码需要让 stub 提供一个入口点1. 加载 PE 文件5. 加载 Stub 文件 8. 加载共享数据,写入了原始OE篇2. 添加了一个区段4. 实现了一个 stub 提供了 start 7. 提供了一个共享数据结构 9. 重新跳转到...

weixin_30954607的博客 334

gh0st 3.6远程控制工具VS2010编译完整版

htmltable {th, td {th {pre {简介:gh0st 3.6是一款基于开源架构的远程控制工具,已成功在Microsoft Visual Studio 2010开发环境中完成编译。该项目包含完整的解决方案文件(.sln)、用户配置文件(.suo)以及编译后的可执行程序,支持直接运行与二次开发。源码集成VS2010编译配置,涵盖项目属性、库依赖和头文件路径等设置,便于开发者构建、调试和自定义功能。

weixin_36300623的博客 963

VC编译器命令行详解

CL   命令行使用下列语法:    CL   [option...]   file...   [option   |   file]...   [lib...]   [@command-file]   [/link   link-opt...]   下表说明CL   命令的输入项意义     option   一个或多个   CL   选项。请注意,所有选项都应用于所有指定的源文件。选项是由一个正斜杠   (/)   或一个短划线   (–)   指定的。如果某个选项带有参数,则该选项的说明指定在选项和参

jeromeyu的专栏 6957

LLM之RAG实战(五十四)| 复杂文档处理RAG框架:Ragflow

RAGFlow 是一种结合了检索增强(Retrieval-Augmented Generation,RAG)与流程控制(Flow)的人工智能技术架构。它通过检索外部知识库中的信息,结合自然语言生成技术,为用户提供更准确、更丰富的回答。同时,它还引入了流程控制机制,能够根据任务需求动态调整信息检索和生成的流程,从而更好地完成复杂的任务。RAGFlow 的核心优势在于将检索和生成相结合,打破了传统生成模型仅依赖内部参数进行文本生成的局限。

wshzd的博客 1067

ArcGIS新手必看:HWSD2土壤数据从下载到批量提取TIFF的完整流程

本文详细介绍了ArcGIS中HWSD2土壤数据的完整处理流程,从数据下载、预处理到批量提取TIFF文件。涵盖栅格属性表构建、属性数据连接及性能优化等关键步骤,帮助新手高效掌握HWSD2数据提取技术,提升地理信息数据处理效率。

ll5678的博客 1036

无Dll插入进程,下载者VC源代码

无Dll插入进程,下载者VC源代码 增加代码xor解密功能,以逃过杀毒软件.生成MiNI下载者,则需要自己做一个工具了.读懂代码,把相应的部份加密即可.参考delphi版本的下载者源代码,编出来有16K左右。压缩也有10K多,于是写了VC的代码。按以下的设置,编译出来2K左右。还可以可以再设置一下编译开关,以减小体积。Ps:原代码中4...

weixin_33929309的博客 96

去面试游戏测试工程师,面试官看着我的简历呆住了

!我个人整理了我这几年软件测试生涯整理的一些技术资料,包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。欢迎大家点击下方名片免费领取,千万不要错过哦。

MXB1220的博客 7332

Ethereal Style 使用指南:进度追踪 + 自动标签 + 多设备同步

Ethereal Style 是一个 Zotero 插件,实时记录 PDF 的阅读进度,用规则给文献自动打标签,还能让多台电脑上的阅读状态保持一致。下面不堆术语,按你实际会碰到的场景一步步讲:怎么装、参数怎么调、标签怎么理顺、换设备怎么接续、出了问题怎么排查。 ## 装好插件,打开 PDF 看进度 先确认版本,Zotero 6.0 及以上才能装,用 `帮助 > 关于Zotero` 看一眼,低于

gitblog_00105的博客 937

word 2013 长篇文档排版案例教程

office 2013 制作长文格式模板

1万+

Zoom AI 技术架构研究:联合式方法与多模态集成

通过 Zoom AI 开放平台,企业可以自定义 AI 模块 (如法律合规审查、客户反馈分析),扩展应用场景。这种开放平台策略使企业能够根据自身需求定制 AI 功能,满足特定业务需求。

shao.bing的专栏 1318

VC6中编译参数设置

VC6中编译参数设置 编译参数的设置 主要通过VC的菜单项Project->Settings->C/C++页来完成。我们可以看到这一页的最下面Project Options中的内容,一般如下: /nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /

633

从零到一:STM32G431的DSP库集成与FFT实战避坑指南

本文详细介绍了在STM32G431微控制器上集成CMSIS-DSP库并进行FFT实战开发的完整流程。重点解析了通过CubeMX和Keil环境配置DSP库的关键步骤、编译器宏定义陷阱及解决方案,并提供了FFT算法优化、内存管理及常见问题诊断的实用技巧,帮助开发者高效实现嵌入式信号处理应用。

oauth7security的博客 771

VC、VS2005调试技巧

一、 引言 本文主要介绍以下几方面内容:常见编译错误 VC调试器 VC快捷键 VC项目文件说明 环境参数的设置二、常见编译错误 Fatal Error C1010 unexpected end of file while looking for precompiled header directive 这一般是由于使用了参数/Yu“stdafx.h”,意思是在每个文件中都应该使用#i

isongbo的专栏 882

手把手教你学Simulink——基于多能互补微电网系统的建模与优化场景实例:风柴储联合供电系统在孤岛模式下的功率分配建模

本文介绍了使用MATLAB/Simulink和Simscape Electrical构建风柴储联合供电系统的建模方法。系统包含风力发电、柴油发电、储能电池等模块,重点研究孤岛模式下功率分配策略。详细说明了从创建项目、添加模块到搭建风力发电系统(含MPPT控制)、柴油发电系统及集成各模块的全过程,并提供了仿真参数设置建议。通过分析频率偏差、电池SOC等关键指标,验证了系统在维持稳定运行的同时能有效利用可再生能源。该模型为研究多能互补微电网提供了实验平台,未来可拓展更高效的能量管理策略和AI技术的应用。

MHD0815的博客 1万+

【软件定义汽车】-【架构篇】-全面讲解整车电子电气架构演进

前言: 前段时间,陆陆续续写了一些电子电气架构相关的文章。这里打算再写最后一篇作为收尾,为整个系列画上句号,把坑填上,这个话题就算过去了。后续一段时间,尽量把之前文章中挖的“坑”填一下。行文逻辑将借鉴5W2H进行。 另外,本文作为一篇整合性的文章,为保证逻辑的完整性,主要是将大量过去自己文章中的内容进行梳理整合,也存在很多行业内专家的公开文章的内容,请见谅。 WHAT1:什么是汽车电子电气架构? 电子电气架构:EEA,Electrical/Electronic Architecture.

零点壹客的博客 1万+

VC6.0使用总结

概念理解: dsp是:Developer studio Project   工程  dws是:Developer studio workspace  工作空间  (一个工作空间可以放多个工程,两者应该是包含的关系.) .clw文件记录了类的信息,如果classView中某个类不见了,重新生成该文件就可以了,方法:删除此文件,点击“建立类向导”,根据提示输入工程名称就可以了; .ncb文件记

myenthusiasm的工作备忘 649

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

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

从零构建视觉流水线:树莓派4B与Ubuntu22.04下的libcamera深度编译与优化实战

本文详细介绍了如何在树莓派4B与Ubuntu22.04系统上深度编译和优化libcamera相机栈。通过源码构建、参数配置及硬件适配,实现高性能视觉流水线开发,重点涵盖rpicam-apps工具链的定制化编译与树莓派摄像头硬件的性能调优实战。

butter的博客 377

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

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

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

BitNet编译错误解决:Windows VS2022环境配置指南

你是否在Windows环境下编译BitNet时遇到过`CMAKE_C_COMPILER_NOT_FOUND`或`LLVM-Toolset缺失`等错误?本文将系统梳理VS2022环境下BitNet编译的完整流程,解决10类常见错误,并提供经实测验证的配置方案。读完本文后,你将能够: - 正确配置支持BitNet的VS2022开发环境 - 解决90%以上的Windows编译错误 - 优化编译参数提升1...

gitblog_01067的博客 795

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

OpenCV2.0 peopledetect 学习体会---转自opencv中文论坛

wsyjwps1983 的 OpenCV2.0 peopledetect 学习体会---转自opencv中文论坛<br /><br />OpenCV2.0提供了行人检测的例子,用的是法国人Navneet Dalal最早在CVPR2005会议上提出的方法。<br />最近正在学习它,下面是自己的学习体会,希望共同探讨提高。<br />1、VC 2008 Express下安装OpenCV2.0--可以直接使用2.1,不用使用CMake进行编译了,避免编译出错<br />这是一切工作的基础,感谢版主提供的参考:h

学习之路 2498
上一篇: 支持XP/2k/2k3下完美进行任意用户克隆的C源码
下一篇: shellcode绕过kav6
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值