问题标签 [compiler-directives]

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 投票
2 回答
3652 浏览

delphi - 编译器指令 - Delphi 版本

我前段时间在 Delphi 7 中编写了一个单元,并且刚刚获得了转换为 Delphi XE (Unicode) 的乐趣(痛苦)。

该单元在遇到一些麻烦后工作正常,我现在正试图使这个单元与不同的 Delphi 版本兼容,如果我需要在更新其他代码的同时将 IDE 切换回 Delphi 7。

我只有 Delphi 7 和 Delphi XE,但从我收集的用 Delphi 1 到 Delphi 2007 编写的代码将编译,但 Delphi 2009 及更高版本的代码将是 Unicode。

...无论如何,在单元中,我将非 unicode 和 unicode 分开,如下所示:

如何修改编译器指令以使规则适用于多个版本?例如:

如果我分发源代码或 .dcu 单元,这将涵盖所有 Delphi 版本。

谢谢。

0 投票
3 回答
1733 浏览

asp.net-mvc-3 - RAZOR/MVC 3 中视图的预处理等效项

我正在寻找相当于

用于 MVC3/Razor 中的视图。实现这种设置的惯用方法是什么?

0 投票
2 回答
698 浏览

delphi - {$C PRELOAD} 指令的含义是什么?

我发现在 Controls.pas(以及其他单元)中声明了这个指令,我很高兴知道它是什么意思。

据我所知 $C 表示断言控制,但 PRELOAD 关键字是什么?是否类似于“在预加载时断言我”?

我在 Delphi 2009 中发现了这个

谢谢

0 投票
1 回答
1187 浏览

string - 短字符串的 Delphi 编译器指令不起作用?

我正在尝试将项目从 Delphi 4 移植到 Delphi XE2。我有shortstring在项目中使用的要求。根据 Delphi 帮助,$H- 应该让编译器使用短字符串作为string类型。我已经使用了这个指令,但我没有看到任何区别。我写了一个小测试程序:

在我看来,两者的输出应该相同strshort因为编译器应该将两者都视为shortstring. 但大小为 4str和 256 short。有没有其他方法可以让编译器将源代码中的所有出现替换 string为或者是唯一的解决方案?shortstringstringshortstring

0 投票
1 回答
51 浏览

.net - 如何防止应用程序在调试/测试期间与外界通信?

我有两个独立的应用程序(都是同一系统的一部分),它们共享一个公共数据库。一个应用程序是负责与外界通信的“网关”,另一个是桌面客户端,局域网上的本地用户使用它来读取/修改/更新本地数据库中的数据。

在特定的时间间隔内,网关应用程序将从各种 Web 服务下载新数据到本地数据库。同样,网关应用程序将扫描本地数据库的更改(由用户通过桌面客户端进行)并将这些更改上传到适当的 Web 服务。

两个数据库正在使用中,一个用于生产,一个用于测试/调试。网关通过更改 app.config 中的连接字符串在两者之间切换。

在测试网关应用程序时,我希望它以只读方式运行;也就是说,它将能够将新数据下载到(测试/调试)数据库,但不能将任何更改上传回 Web 服务。

我现在完成此操作的方法是在应用程序上传数据的地方使用#IF DEBUG 指令,如下所示:

这种方法依赖于我记得在代码可以上传某种类型的更改的任何地方使用调试指令。

有没有更好/替代的方法来做这种事情?

0 投票
2 回答
137 浏览

c - 是否有编译器指令来替换常量的一部分

我现在正在为微控制器使用嵌入式 C,我发现有时有几个外围设备只有一个字母不同(例如 UARTA、UARTB 等)。除了其他相同的寄存器的字母外,每个外围设备的代码通常都是相同的。例如,设置外围 AI 会执行以下操作:

并且设置外设 BI 具有完全相同的代码,除了寄存器名称由 1 个字母转置:

我希望能够更改目标外围设备,而无需#ifdef/复制/粘贴代码或查找/替换。是否有一些编译器指令或巧妙的技巧可以实现这种行为,这样我只需编写一次代码?我很想只 #define 外围设备中的最后一个字母,但类似的东西似乎危险地徘徊在靠近代码的地方,对我来说很臭。

0 投票
2 回答
533 浏览

iphone - 为什么在objective-c中使用@class

可能重复:
@class 我可以知道这个的正确用法吗

我想知道为什么使用@class。我有一个普遍的理解,它允许你访问你调用的那个类中的东西,但是我不知道它的好处..

0 投票
1 回答
763 浏览

c# - iPhone 模拟器的 MonoTouch 编译器指令

有谁知道我在 MonoTouch 中使用的编译器指令来查看我是否在 iPhone 模拟器中运行?在任何地方都找不到任何信息。

谢谢!

0 投票
2 回答
739 浏览

c# - 省略代码:条件属性和预处理指令之间有什么区别?

我想知道有什么区别

?

也许这很明显,但如果有人能给我一个正确方向的提示,我将不胜感激:)

0 投票
1 回答
64 浏览

c - 如何检查该函数在编译器上是否可用?

如果编译器内置函数,有没有办法在编译时检测?例如,像这样:

提前致谢。