这个可恶的编译warning.......(100分)

  • 主题发起人 主题发起人 woodstock
  • 开始时间 开始时间
W

woodstock

Unregistered / Unconfirmed
GUEST, unregistred user!
delphi 6下,调用动态库,如<br>function SHFreeShared; external 'shell32.dll' index 523;<br>function Free; external 'comctl32.dll' index 73;<br>编译的时候,会出现如下警告信息:<br>Symbol 'INDEX' is specific to a platform<br><br>我编译程序的时候,总是不允许自己程序中有hint和warning,但是这个本来在<br>delphi 5下没有问题的代码,却在delphi 6出现warning.<br><br>哪个大侠知道如何解决?
 
&gt;&gt;我编译程序的时候,总是不允许自己程序中有hint和warning<br><br>改掉这个毛病。
 
好像洁僻
 
是交叉平台的问题吧
 
&gt;&gt;我编译程序的时候,总是不允许自己程序中有hint和warning<br><br>这是一个优秀程序员的素质。因为任何一个提示或警告都可能意味着某个未考虑到的<br>隐患。有一些问题的确避免不了hint或warning。但Delphi可以在你已经预知会出现<br>提示或警告的语句段用预编译指示关闭它们。<br><br>是不是函数的声明有问题?是否一定要使用Index?D6的代码可以在Kylix中不经修改<br>直接编译。一定有一个什么预编译语句可以指示本代码只在D6中使用。是不是kylix<br>中不支持Index引用?
 
&gt;&gt;这是一个优秀程序员的素质<br><br>说实话,我还没遇见过一个控件安装后没有hint的,这位所谓的优秀程序员只不过<br>是一个心理障碍患者,需要尽早看医生。
 
&gt;&gt;这是一个优秀程序员的素质<br><br>准确地讲,是一个负责任的程序员的素质.<br><br>&gt;&gt;说实话,我还没遇见过一个控件安装后没有hint的,<br><br>没有呀,我没有控件安装后带hint呀,如果有的话,我我一定改过来或者不用.<br><br>&gt;&gt;这位所谓的优秀程序员只不过是一个心理障碍患者,需要尽早看医生。<br><br>谢谢你的提醒。如果有时间我会去的。不过,我眼下还不是一名优秀程序员。
 
to barton:<br>阁下有没有写过c/c++代码?<br>如果有的话,用过些什么编译器?<br>知道 VC,BCB 的编译器跟专业编译器的区别在那里吗?<br>阁下确实是没有什么“心理障碍”,就是太业余了,呵呵。
 
学习一下,专业编译器是指哪个?
 
我也不想看hint或warning,讨厌得很,我只有在完全开发完后才挨个改warning内容。
 
&gt;&gt;hint呀,如果有的话,我我一定改过来或者不用.<br>果然有病,真可怜<br><br>&gt;&gt;如果有时间我会去的。不过,我眼下还不是一名优秀程序员。<br>照这样下去,你不会成为优秀程序员,只会成为优秀癔症患者。
 
上面那个叫什么button的,这段代码编译会产生一个Hint:<br>"Value assigned to 'a' never used"<br><br>function test(b: integer):integer;<br>var a:integer;<br>begin<br>&nbsp; a:=0;<br>&nbsp; if b=20 then<br>&nbsp; begin<br>&nbsp; &nbsp; a:=10*b+b div 200; &nbsp; &nbsp; &nbsp; &nbsp;//a只在b=20的语句块里做临时变量使用<br>&nbsp; &nbsp; result:=a*20+b*100 div a;<br>&nbsp; end<br>&nbsp; else<br>&nbsp; &nbsp; result:=0<br>end;<br>原因是编译器认为如果b&lt;&gt;20就不用使用变量a了,但是但凡没有心理障碍的人<br>都可以看出,a在这里是必须的。<br>我不知道你遇到这种情况是怎样满足你的洁僻的?
 
我从自己的经验来看,如果编译的时候出现warning,多半是自己的程序有问题,<br>可能你忽略了,确实可能存在一些问题(编译器这个时候比你聪明)。<br><br>但是也有可能是编译器本身的问题,如<br>try<br>&nbsp; list:= TStringList.Create;<br>&nbsp; &nbsp;.....<br>finally<br>&nbsp; list.Free<br>end;<br>总是提示:list没有初始化,解决办法是把list := TStringList.Create放到try前面。<br>但是我觉得放在try后面也没有问题呀。<br><br>不管你们怎么认为。我觉得,程序中,肯定不想让hint,warning存在(除非像上面的问题,我不知道怎么改)。
 
&gt;&gt;function Free; external 'comctl32.dll' index 73;<br>&gt;&gt;编译的时候,会出现如下警告信息:<br>&gt;&gt;Symbol 'INDEX' is specific to a platform<br><br>很简单,去掉index 73就可以了,有函数名字就够了,不需要index。<br>index并不是所有平台都支持的东东。这些help里面都有。<br>
 
barton不是傻瓜,他有他的道理,barton也不是新手,他的水平也很高,你们就没有仔细<br>的考虑一下他究竟为什么和你们习惯不一样?我还见过写程序从来不调试、不编译的人呢,<br>你们说他有什么病?<br>to 一个过客:<br>警告你不要再骂人。<br>
 
to: 一个过客<br>&nbsp; 这里a要初始化?? 是你自己有问题,还敢说别人。。。。呵呵。
 
woodstock: 蠢驴!这只是随手写的,不信你去掉那句初始化也一样的。怪不得你蠢!<br><br>北丐: 你也有病?有病就要早治,别投鼠忌器讳疾忌医哦<br><br>&gt;&gt;你们就没有仔细的考虑一下他究竟为什么和你们习惯不一样<br><br>考虑过了,因为她有病
 
to rope:<br>我的确很业余呀,我并不认为我很专业呀!<br>惭愧得很,我没有写过C/C++代码,我只用过Delphi一个编译器,更不懂什么叫专业编译器。<br>实在是孤陋寡闻,你大人大量,不需与我计较,好吗?<br><br>to 一个过客:<br>我没有什么洁癖,只是做事稍稍认真了一些。象你举的代码,我一定将a:=0这行删除,只有<br>傻瓜才加这行。因为我不是傻瓜,所有本身就很少有hint的。<br><br>to woodstock:<br>&gt;&gt;但是我觉得放在try后面也没有问题呀。<br>的确没有问题。但编译器并不能判断出你为这行不会出错呀。如果出错就不会运行到了,<br>想一想养成习惯放到try前面也不麻烦,可是却不会出现任何hint,何乐而不为呢?<br><br>to all:<br>我发现讨论已经远离原题了。我想原提问者不一定会喜欢看到一些无关的内容。是否省一点<br>时间、省一点网络资源更好一些?
 
的确有点离题了,不过这还不都是你吹嘘的盖世神经病所引起的。<br><br>好了,woodstock的问题我前面已经回答了,快给分八
 
to 一个过客:<br>其实warning已经成为很多人的累赘你必须承认,比如barton。<br>另外你的修养实在不敢恭维,这么多人就你骂骂咧咧的,丢人!
 

Similar threads

I
回复
0
查看
822
import
I
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部