改问题的能力

问题情况:网页上调用了VB写的一个控件生成Word文档。现在当某一ID>36767(2的16次方,记不清这个数了)时就会出错,生不成文档。因此怀疑是这个控件的入口方法的参数给设定为Integer型,导致出错。

已有条件:有早期源码,并不是最新的源码。但里面只有一个方法的参数为Integer,据分析肯定不是这个方法导致。
这问题何解?
1.确认当前代码中没有另外的Integer参数方法时,怀疑他们给出的疑问有问题,也许不是VB控件的错。但确实是当ID大于那一值后才会出现这种问题。
2.查了VB代码后,发现在处理图片时有一个路径是类似于Picture_ID这样的内容,于是怀疑是因为写这个路径的那个方法是Integer参数,因为没有生成这个路径,所以VB在这个路径下取图片时就会出错。但经确认,网页是用PHP写的,PHP不会有Integer这样的主动声明过程,也就产生不了这种错误,这个怀疑被否定。
3.再次查看VB代码,发现它在生成Word文档时处理了一个XML文件搜索这个文件后,在某一位置下找到。删除后,在执行一下点按钮的操作,这时又有了XML文件。也就是说VB控件里还有一个生成XML文件方法。因为VB代码不是最终版的,所以怀疑在后面的代码中又加了一个对应的生成XML的方法
4.到此时才想起去看看PHP代码。那里面清楚的写着VB控件的入口方法为另一个现有代码中没有的方法
5.于是接下来的工作就是在现在代码中补上这个没有的方法,并把生成XML文件方法也补上。写好代码后,得到对应的.ocx控件,二进制兼容后。替换。搞定

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...