Inno Setup调用LoadStringFromFile始终报"类型不匹配"错误
解决Inno Setup中LoadStringFromFile的"Type mismatch"错误
你遇到的类型不匹配错误,核心原因是LoadStringFromFile函数的返回值是布尔类型(Boolean),用来标识读取操作是否成功,而非读取到的文件内容。你直接把这个布尔值赋值给String类型的Result,自然会触发类型不匹配。
修正后的代码
function getPath(Param: String): String; var line: String; filePath: String; begin Result := ''; // 初始化返回值 filePath := ExpandConstant('{commonpf64}\appfolder\sometextfile.txt'); // 先校验读取是否成功,再返回内容 if LoadStringFromFile(filePath, line) then begin Result := line; end; end;
关键说明
- LoadStringFromFile的使用逻辑:第一个参数传入文件路径,第二个参数是用于接收读取内容的字符串变量,函数返回
True表示读取成功,False表示失败。 - 路径字符串建议用Inno Setup默认的
String类型(对应UnicodeString),避免AnsiString带来的编码问题,尤其是路径包含中文或非ASCII字符时。 - 初始化Result为空字符串,避免读取失败时返回不确定的值。
内容的提问来源于stack exchange,提问作者Wai Wong
相关产品推荐
相关产品推荐

