发现MSDN专家设置的一个bug
首先表达一下对CnWizards的赞美,这个工具实在是太太太、太好用了!一直都在用它。
我的机器是WinXP+D7,有一个版本曾经不太稳定,后来保持一个低版本很久了,昨天发现升级到RC2了,还增加了梦寐以求的begin..end匹配,非常高兴。但是发现以前不能用的MSDN专家还是不能用,于是打开了一份以前的代码cnwizards_0.8.1.252_src,看了一下里面的代码,发现了一个导致我不能正确使用MSDN专家的bug,这个bug应该现在还存在,因为RC2里面我还遇到这个问题。
我的机器上查看到的MSDN列表为如下:
MSDN Library - Visual Studio 6.0
Visual Studio .NET Combined Help Collection
MSDN Library for Visual Studio 2005 CHS
我选择第一个,其实就是MSDN98,但是程序中的代码如下:
function TCnMsdnWizard.IsSelectOldMsdn(SelectedText: string): Boolean;
var
MsdnInfo: TCnMsdnInfo;
i: Integer;
begin
Result := False;
for i := 0 to FMsdnList.Count - 1 do
begin
MsdnInfo := TCnMsdnInfo(FMsdnList.Items);
if MsdnInfo.FCaption = SelectedText then
begin
// if AnsiContainsText(SelectedText, 'Visual Studio 6.0') and
// AnsiContainsText(SelectedText, SMsdnLibrary) then // Msdn 98
// begin
// Result := True;
// Break;
// end; 屏蔽的代码为自己加的,以解决这个问题。
if AnsiContainsText(SelectedText, '2000') and
AnsiContainsText(SelectedText, SMsdnLibrary) then // Msdn 2000
begin
Result := True;
Break;
end;
end;
end;
end;很显然,返回的是False,于是调用RunMsdnDotNet,就错了。
另外,我的机器如果选择MSDN2005的话,会提示“连接服务程序异常”,好像是DExplore里面的问题,还没有细看代码,如果有朋友也遇到过类似问题,麻烦指点我一下,以便少走弯路。
[ 本帖最后由 crazycock 于 2007-12-12 11:10 编辑 ]
|