技术人生

生如夏花之绚烂,死如秋叶之静美…

« 绿色单文件制作工具VMware ThinApp教程彻底删除输入法的方法,以王码五笔为例 »

Delphi中“Variable 'Res' might not have been initialized”的解决方法

刚刚在用Delphi写一个五笔输入法安装程序,在导出资源这个过程中出现一个问题,就是编译的时候出现错误提示:

[Warning] Unit1.pas(33): Variable 'Res' might not have been initialized

其实这只是个警告,对于程序运行是没有关系的,但是我想知道原因并且把它去掉。

导出资源的源代码我是这样写的:

procedure ExtractRes(ResType, ResName, ResNewName: string);
var
Res: TResourceStream;
begin
try
Res:= TResourceStream.Create(Hinstance, Resname, Pchar(ResType));
Res.SavetoFile(ResNewName);
finally
Res.Free;
end;
end;


一、由于有try语句出现流程分支而出现的,把try...finally结构暂时注释调再编译警告就会消失。

二、警告的原因是有可能Res在Create方法时失败,这样Res.Free就会有异常,把
Res:= TResourceStream.Create(Hinstance, Resname, Pchar(ResType));
放到try外面即可!

如转载本站原创文章,请务必注明:[ 技术仓库 ] - http://www.hack0573.com

本文永久链接地址:http://www.hack0573.com/Program/35.html

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新技术

技术排行

搜寻技术

Copyright©技术仓库 2009-2010 版权所有 All Rights Reserved.

嘉兴学院南湖学院-计科N051 | Hack0573@msn.com我要啦免费统计