问题标签 [preprocessor]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
5782 浏览

asp.net - ASPX/ASCX 页面中的“#if DEBUG”

我希望能够根据我在 VS2005 IDE 中选择的模式(调试或发布)指向 2 个程序集之一。像这样的东西(不起作用):

所以,我的问题是:如何在 ASPX 或 ASCX 页面中正确使用#if DEBUG?

0 投票
1 回答
6068 浏览

visual-studio - WINVER或WIN32_WINNT如何影响操作系统版本,如dumpbin所示

我们有一个现有的(旧)代码行,我们最近从 VC6 转换为 VS2008(沿途转换为 VS2005)。转换后,所有(或大部分)vcproj 文件通过预处理器设置将 WINVER 设置为 0x0500。在我们的很多预编译头文件(通常是 stdafx.h)中,WINVER 设置为 0x0500(有些仍然设置为 0x0400)。如果我在我们的主 exe 上使用 dumpbin /headers,它显示操作系统版本是 5.0 (Windows 2000)。

在更改 vcproj 预处理器设置以使 WINVER 和 WIN32_WINNT 为 0x0501 并在 stdafx.h 文件中进行类似更改并重新构建后,dumpbin 仍然显示操作系统版本为 5.0。

我还使用 VS2008 创建了一个全新的控制台应用程序(以及一个全新的 MFC 应用程序)并构建了它们。即使通过 targetver.h 文件设置的 WINVER(和 WIN32_WINNT)为 0x0600,这些 exe 也显示操作系统版本为 5.0。

我猜想将 WINVER 和/或 WIN32_WINNT 设置为 0x0501 或 0x0600 会对 dumpbin 显示的操作系统版本产生一些影响。我是对的,我应该期望 dumpbin 显示对应于 WINVER 和/或 WIN32_WINNT 的操作系统版本吗?

我已经阅读了一些关于这方面的好文章(msdn 上的“使用 Windows 标头”,The Old New Thing 上的“WINVER 之间有什么区别...”,以及这个特别有趣的文章:http: //blogs.msdn.com /dsvc/archive/2009/06/19/troubleshooting-not-a-valid-win32-application-error-at-the-startup.aspx

虽然操作系统版本字段中出现的确切版本可能不是一个大问题,但我们希望了解行为并能够做“正确”的事情以确保我们正确使用这些宏和设置。

谢谢你的帮助

0 投票
1 回答
2753 浏览

java - 在 Annotation Processor for java 中发现方法调用的类

我正在为我们的构建系统编写一些工具,以对属于包含某些注释的类的方法强制执行一些严格的调用约定。

我正在使用编译器树 API ...

我想知道的是,在遍历“树”时,如何判断 MethodInvocation 的类/接口的类型。

我将 TreePathScanner 子类化为:

我希望有一种方法可以告诉您尝试调用该方法的类(或接口)的类型。我会以错误的方式解决这个问题吗?感谢您的任何想法...

0 投票
2 回答
1673 浏览

asp-classic - VBScript/Classic ASP 中的任何其他预处理器指令?

我在 VBScript/Classic ASP 中知道的唯一预处理指令是#include。我不知道这是否是正式名称,但我基本上是在寻找可以在通用 VBScript之前执行代码或其他指令的代码。

VBScript 中是否还有其他此类指令?比如#If之类的?

我希望能够有条件地包含或排除某个包含文件。

0 投票
3 回答
5455 浏览

iphone - 内置预处理器令牌来检测 iPhone 平台

是否有一个预处理器令牌可用于在构建时检测任何 iPhone 设备或模拟器?我目前正在使用:

这是推荐的方法还是有更好的方法?我更喜欢内置宏,即由编译器定义,而不是由我必须包含的 SDK 头文件定义。

我现在不关心区分 iPhone OS 版本,但是如果有一个 Apple 文档页面详细说明了所有相关宏以及它们何时定义和未定义,那么我会很感激一个指向它的链接,因为我的搜索已经到来到目前为止还不够。

谢谢!

0 投票
5 回答
499 浏览

c++ - 通过 perl 脚本过滤 C++?

我有一个 perl 脚本,我想在 gcc 正常处理它们之前过滤我的 cpp/h 文件——基本上作为一个额外的预处理步骤。是否有捷径可寻?我意识到我可以将 cpp 文件提供给脚本并让 gcc 从标准输入读取输出,但这对头文件没有帮助。

0 投票
1 回答
297 浏览

visual-studio - VS2008:如何使 stdafx.h 中定义的符号对资源编译器可见?

我正在 VS2008 下开发一个 VC++ 项目。我的资源文件包含一些用于条件编译的预处理器指令。控制条件编译的一些符号在stdafx.h. 我也需要这些符号对资源编译器可见。我该如何做到这一点?

0 投票
12 回答
1811 浏览

c# - 为什么预处理器的使用在 C/C++/ObjC 以外的语言中不太常见?

我从事 Java 和 VB.Net 程序员大约 4 年,从事 C# 程序员大约 6 个月。我还使用了许多动态语言,例如 Perl、Python、PHP 和 JavaScript。

我从来不需要预处理器。

我的问题是:为什么您会在 C、C++ 和 Objective-C 中看到如此广泛的预处理器使用,但很少(或从未)在 Java、C# 或 Scala 等语言中看到它?

0 投票
2 回答
540 浏览

sql - [My]SQL 是否有类似预处理器的功能?

我正在为我的第一个数据库驱动应用程序编写一个小型部署 SQL 脚本。

在这个过程中,我发现我经常重复自己例如:

如果我可以使用变量或宏来替换经常出现的数据,那就太棒了。是否可以实现类似以下代码段的内容?

0 投票
3 回答
1234 浏览

ant - 从同一代码库编译 J2ME 和 J2SE 应用程序的最佳方法是什么?

我正在尝试为 J2ME 和 J2SE 构建一个应用程序。演示代码显然会有所不同,但我希望尽可能保持逻辑通用。

我的计划是使用 Ant 或 Antenna 的预处理器来选择 J2ME 或 J2SE 图形对象,该类是我的逻辑和显示代码之间的唯一交集。我所需要的只是在我的 Ant/Antenna 构建任务期间在几个文件中交换一两行导入。

我想要一些关于如何设置的建议。

我目前有两个 Eclipse 项目,一个 J2ME 和一个 J2SE。对于如何设置预处理器,我有几个想法:

  • 将 J2SE 代码设为默认值,并且仅预处理 J2SE 代码以交换 J2SE 特定的导入

  • 对 J2ME 和 J2SE 项目使用 Antenna 预处理器

  • 使用 Ant 文本替换来进行必要的源代码修改

    一世。看起来很难正确设置
    ii。感觉有点笨拙
    iii. 似乎最不坏,因为我认为自己不需要使用比几个条件导入更多的东西。

有没有人有过这种事情的经验?一些建议将不胜感激。