Delphi 6.0编译出的EXE文件,压缩成zip以后用email分发给同事,结果被服务器拦截,报告说有"Suspicious!SA"病毒,并把zip中的exe文件删除了。
很奇怪的事,因为之前根本没遇到过。自己的机器上,理应很干净才对。上网查一下什么是"Suspicious!SA",可是,资料非常非常的少,找了很久,只知道这是一种Malware,然后什么资料也没有,即使是mcafee和norton网站上也找不到。于是只能自己排查。
首先要确定是所有的EXE文件都感染了这病毒,还是只有这个EXE感染了病毒。于是ZIP了之前编译的其他EXE文件传送给自己。发现在2012年5月初之前的EXE都没有问题。
我因为新版本的WINZIP默认压缩格式变成了ZIPX,所以装了7-ZIP来压缩成ZIP格式的,会不会是7-ZIP的问题呢?
于是再把有问题的EXE文件用WINZIP压缩成ZIPX传送,发现居然也没有问题了。用WINZIP压缩成ZIP传送,一样没有问题。
因此,用7-ZIP压缩的某些新编译的EXE才会出现问题。这应该也不是真的病毒,只不过有些特征码类似而已。
看来以后只能用WINZIP来压缩传递文件了。但是,我不喜欢winzip直接压缩成zipx格式。因为有客户可能还在使用老版本的压缩软件,不能识别zipx。进入winzip主界面,把下面所示的选择框去掉,WINZIP的右键菜单里就变成直接压缩成zip文件啦。

Installshield做的安装文件在XP测试机上出现Error 1001错误.InstallUtilLib.dll: Unknown error.

原因是XP测试机上没有.NET 4.0而只有.NET 2.0.安装前检测可以避免这种错误但是有这限制不好.因为用不上.NET4.0. 在Installshield的toolsoptions菜单里改一下.NET的选项,原来.NET Framework File的location默认是4.0的,改成用2.0的就可以了.(下图是已经改成2.0的了)

在windows 7上新安装了IIS7.5,准备学习web service.可是做好asmx文件后,放到虚拟目录下一直出现404.3错误,不认可.asmx文件,无法运行.
研究后发现,因为刚安装IIS,所以一些必须的组件没有装好,在添加/删除程序中的windows feature里,把下列开关打开后,404.3错误消失.

在windows 7 64位上新装了Delphi 6,编译AMSIM时一切正常,但是编译solids时,出错compiled with a different version of XXX。试着重新下载了最新的源文件,尝试rebuild all projects,都报同样的错。
后来发现,出错的文件是SOLIDS和PVTPRO共用的单元文件,该文件存放在PVTPRO的目录里,里面使用了{$IFDEF}预编译指令来对不同的项目使用了不同的代码,在SOLIDS进行编译时,因为找不到这几个文件的源文件,所以直接引用了DCU,而在PVTPRO中编译过的DCU文件与在SOLIDS应该使用的有所不同,就出现了compiled with a different version of XXX的错误。要解决这个问题,就要使不同的项目在编译时,都需要找到这几个源文件并重新编译。
解决方法:在SOLIDS的project options中,在Directory/Search path中把那几个源文件所在的目录加进去。再编译,通过。
网站的管理界面用如下的DW函数生成下拉菜单
stm_aix('p1i5','p0i0',[0,'<? echo $strAdminMenu_1_5; ?>','','',-1,-1,0,'','mainframe','','','','',0,0,0,'images/muar1.gif','images/muar2.gif',0,0,0,0,1,'#000000',1,'#666666',0,'','',3,3,0,0,'#cccccc','#cccccc','#000000','#ffffff','12px']);
但是在恢复了数据以后,报告说下拉菜单不见了.研究后发现,其实在界面上菜单并没有消失不见,而是文字无法显示出来.菜单文字变成了一个个的不可见的空格.鼠标移到上面仍然可以弹出菜单,但是菜单的内容有的有文字,有的没有文字,非常之莫名其妙.
试了多种方法,包括改变语言包(language/zh_cn_utf8.php)等但是都不能解决问题.
解决方法:把上面的类似语句改成
stm_aix('p1i5','p0i0',[0,'<?php echo $strAdminMenu_1_5; ?>','','',-1,-1,0,'','mainframe','','','','',0,0,0,'images/muar1.gif','images/muar2.gif',0,0,0,0,1,'#000000',1,'#666666',0,'','',3,3,0,0,'#cccccc','#cccccc','#000000','#ffffff','12px']);
猜想可能是主机提供商升级了PHP,结果导致语法更加严格所致.不过没有去确认是不是此原因.





