标签: compiler-directives

所有API受{$ IOCHECKS OFF}影响的是什么?

我们有一些古老的Delphi代码(可能甚至起源于Turbo Pascal代码),它们使用{$I-},也就是说,它使代码使用IOResult而不是磁盘I/O错误的异常.{$IOCHECKS OFF}

我想摆脱这个{$I-}并将这个代码推进到20世纪90年代,但为了做到这一点,我想知道所有受到影响的是什么{$IOCHECKS OFF}.这只会影响Crufty旧的内置I/O函数,如AssignFile/Reset/Rewrite/Append/CloseFile吗?或者它是否会影响TFileStream等更现代的东西?更重要的是,还有什么可能会影响到我没想到的?(Delphi Basics建议它也会影响MkDir和RmDir.如果它影响那些,那么必须有更多.)

Delphi 2007帮助主题"输入输出检查(Delphi)"(ms-help://borland.bds5/devcommon/compdirsinput_outputchecking_xml.html)表示这会影响"I/O过程[s]",并且"在Delphi语言指南中描述了I/O过程".这没有多大帮助,因为CodeGear从未发布语言指南,而Borland最后一次发布的是Delphi 5.

哪些功能和类的行为不同{$I-}


编辑:接受的答案提供了一些很好的背景,但这里是按字母顺序排列的列表形式的快速摘要:{$IOCHECKS OFF} 影响系统单元中的以下例程.

  • 附加
  • BlockRead
  • BlockWrite命令
  • CHDIR
  • CloseFile
  • EOF
  • EOLN
  • 抹去
  • FilePos
  • 文件大小
  • 红晕
  • MKDIR
  • Readln
  • 改名
  • 重启
  • 改写
  • RmDir会
  • 寻求
  • SeekEof
  • SeekEoln
  • SetLineBreakStyle
  • 截短
  • Writeln

delphi error-handling file-io compiler-directives

4
推荐指数
1
解决办法
431
查看次数

避免在c#中为一段代码调试和调用堆栈

在Delphi中,编译器指令{$ d-}和{$ l-}允许您有效地避免为定义的代码段生成调试和局部变量信息.

在实际的问题中,它具有从调试视图中"隐藏"代码的效果,它不会出现在调用堆栈中,并且在调试时不会进入它.

有没有办法在使用VS 2008的c#中实现相同的结果?

注意:原因是我们有一个稳定的框架,不需要调试,但往往会搞乱调用堆栈和标准调试流程.

c# compiler-directives visual-studio-2008

4
推荐指数
1
解决办法
480
查看次数

如何从编译器功能指令访问作用域?

我有一个基于作为属性发送的数组构建html的指令。我无法从指令的编译器功能访问它。它在链接函数内部工作,但是我需要在编译内部,否则新模板不会被编译。

代码是这样的:

<multirangeslider values="ranges" variances="['Master', 'master A', 'master B']"></multirangeslider>
Run Code Online (Sandbox Code Playgroud)

指示:

angular.module("vtApp.directives").
directive('multirangeslider', function ($parse, $timeout, $compile) {
    return {
        restrict: 'E',
        replace: true,
        scope: {
            values: "=",
            options: "=",
            variances: "&" 
        },
        compile: function (element, attrs) {
            var htmlText, variances, values;
            variances = eval(attrs.variances);

            values = scope.ranges //scope is undefined
            values = eval (attrs.variances) //returns string "ranges"
            values = ???  ///what should I put here?

            htmlText = '<div></div>';
            element.replaceWith(htmlText);
            return function (scope, element, attrs){

            }
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

谢谢

javascript compiler-directives angularjs-directive

4
推荐指数
1
解决办法
7014
查看次数

自动删除Delphi IFDEf编译器指令

我目前正在处理'继承'代码,该代码具有(随机分散)一大堆基于Delphi版本的条件编译器指令,返回到Delphi 2.从现在开始,所有开发都将采用Delphi 2009或未来.Delphi 2009中是否有一个工具或插件,它会根据指定的"最小"版本自动删除编译器条件代码段?

delphi compiler-directives delphi-2009

3
推荐指数
1
解决办法
1471
查看次数

使用 -compile 在 Erlang 模块中请求 debug_info

我想强制 Erlang 编译器在编译特定模块时生成它们的调试信息,而无需将参数添加debug_info到编译命令中。我尝试添加

-compile([debug_info]).
Run Code Online (Sandbox Code Playgroud)

到模块文件,但运行时c(my_module)并未在梁文件中包含调试信息。

有没有办法做到这一点,或者无法从模块源文件本身添加调试信息?

debugging erlang compiler-directives

3
推荐指数
1
解决办法
1915
查看次数

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

可能重复:
@class我可以知道正确使用它

我想知道为什么使用@class.我有一个大致的了解,它允许你访问你所调用的类中的东西,但我不知道它的好处..

iphone compiler-directives ios

3
推荐指数
1
解决办法
530
查看次数

编译器指令WIN32和CPUX86,WIN64和CPUX64在Delphi中是否可以互换?

编译器指令WIN32和CPUX86,WIN64和CPUX64在Delphi中是否可以互换?

如果是,哪一个更受欢迎?如果不是,为什么?

delphi compiler-directives

3
推荐指数
1
解决办法
2171
查看次数

相当于Julia中的c\c ++编译器指令

使用编译器指令

#if A
some instructions 
#elseif B
some instructions
#end
Run Code Online (Sandbox Code Playgroud)

在C\C++语言中,可以告诉编译器在某些条件下忽略代码的某些部分.我很想知道Julia语言中是否有相同的功能.

compiler-directives julia

3
推荐指数
1
解决办法
60
查看次数

使用#if,#endif的Swift错误

在Swift中(使用Xcode)使用#if,#endif(如果使用Xcode)会切入操作流程,则会产生错误。该屏幕截图说明了一切:

Swift #if,#endif错误

有谁知道一种解决方案,可以使此示例正常工作,而无需重复整个代码块两次?很容易出现整个块可能很大的情况。

编辑:我的示例有点太简单了。这是一个新示例,其中“ else if”取决于相同的定义(DEBUG)。“ else if”也必须在#if和#endif之内。其他样本可能比这复杂得多。

在此处输入图片说明

xcode preprocessor compiler-directives swift

3
推荐指数
1
解决办法
291
查看次数

在 Visual Studio 2019 中切换编译器指令?

我正在使用 Visual Studio 2019 和基于 SDK 的项目,具有多个目标:

<TargetFrameworks>netstandard2.0;net45;net46</TargetFrameworks>
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

但是当我编写条件代码时,我(显然)看到一些灰色代码和一些常规颜色代码:

在此输入图像描述

问题:

哪些设置决定哪些部分将呈灰色,哪些部分不会?因为现在,如果我想编辑“ NETFULL”部分(因为我是多目标),它都是灰色的,而且我没有智能感知。

我如何告诉 VS:现在让我们切换到NETFULL模式?

注意:当然我可以删除该条件,但我想知道为什么它是灰色的以及如何在它们之间切换(因为我是多目标)

c# compiler-directives visual-studio visual-studio-2019

3
推荐指数
1
解决办法
908
查看次数