DFX1xxx — 驱动与文件 I/O
DFX1xxx 段的全部诊断码,每条带严重级别、逐字消息、成因与修法。
本族共 6 条(6 错误)。消息是编译器持有的格式串:%s、%d、%c 在运行时被替换掉。
DFX1000
错误抛出位置Parser/DreamFXParser.cpp:1837
Could not read source file '%s'.
原因. 路径不存在,或者进程读不了它。from 引用和 -File= 参数都落在这里。
修复. 检查路径。相对的 from 路径先相对引用它的文件解析,再相对每一个 DFX 根解析。
DFX1001
错误抛出位置Parser/DreamFXLexer.cpp:304
Unterminated string literal.
原因. 一个带引号的字符串一直到行尾都没有闭合。
修复. 补上引号。DreamFX 的字符串不跨行。
DFX1002
错误抛出位置Parser/DreamFXLexer.cpp:127
Unterminated block comment.
原因. 一个 /* 从来没有闭合。
修复. 补上 */。报出来的位置是注释开始的地方,不是文件结束的地方。
DFX1003
错误抛出位置Parser/DreamFXLexer.cpp:335
Unexpected character '%c' (U+%04X).
原因. 一个不属于这门语言的字符出现在字符串、注释和 raw block 之外。最常见的来源是从文档里粘过来的弯引号。
修复. 删掉它。码位会一并打印出来,所以长得像的字符也能认出是哪一个。
DFX1004
错误抛出位置Parser/DreamFXLexer.cpp:488
Unterminated raw block: missing '}'.
原因. 一个 raw block —— hlsl { }、Body = { } —— 开了但没关。raw block 是按花括号配平的,所以 HLSL 内部一个不配对的花括号会让这个块一直吃到文件末尾。
修复. 把块内部的花括号配平。
DFX1005
错误抛出位置Parser/DreamFXLexer.cpp:185Parser/DreamFXLexer.cpp:198
Unterminated back-quoted name. A `name` must close on the same line.
原因. 一个反引号开了一个名字,但到行尾都没有闭合;或者开了就立刻闭合,中间什么都没有。
反引号名字是这门语言用来承载那些否则写不出来的 Niagara 名字的办法 ——
`PillarPower(0~1)`、`Ring/DiscDistributionMode`。名字从不跨行,所以缺了闭合引号会在行尾就报出来,而不是把文件剩下的部分整个吞掉。
修复. 补上引号。如果名字本身含有一个反引号,那它就没有书写形式:转义还需要转义,而 Niagara 里也不会产出这种名字 —— 改掉那个参数的名字。
只在名字本身不是标识符时才需要反引号。`Speed` 合法但是噪音,写 Speed。反编译器就是照这条规则输出的,所以重新导出一次是看清「哪些名字需要引号」的最快办法。