CL.exe的 /D 选项, Preprocessor Macro预处理器宏定义

在看"Inside COM"第10章的代码. MAKEFILE里面有几个标记我没看懂. 去网上搜也搜不到.

/D_OUTPROC_SERVER_

/DWIN32

/DREGISTER_PROXY_DLL

后来突然想起有几个文件的编译依赖于预处理器的宏定义, 这尼玛不会是几个宏定义吧? 果然是...

这Microsoft编译器命令行的蛋疼格式: 为什么编译器选项和参数不用空格隔开呢? 这不容易导致歧义吗

/D选项的文档: https://msdn.microsoft.com/en-us/library/hhzbb5c8.aspx

 

后来根据这几个标记在MAKEFILE中的位置, 顺藤摸瓜找到了使用他们的源文件, 查看这几个源文件的代码, 发现了这么几个宏:

 

#ifdef _OUTPROC_SERVER_ // CFACTORY.H 以及包含了它的源文件: CFACTORY.CPP , REGISTRY.CPP, UTIL.CPP , OUTPROC.CPP

#ifdef WIN32 // SERVER.IDL生成的 dlldata.c , proxy.c , guids.c

#ifdef REGISTER_PROXY_DLL // SERVER.IDL生成的 dlldata.c , proxy.c , guids.c

posted @   rldts  阅读(1460)  评论(1编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
历史上的今天:
2014-10-29 简单的异或加密
点击右上角即可分享
微信分享提示