救命!程序发布时报错 Access violation at address 4003D6B3 in module'rtl60.bpl'(200分)

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

wukui

Unregistered / Unconfirmed
GUEST, unregistred user!
在一台装有Delphi 6的机器上开发的(还装有C++Builder6),
在开发机上运行正常(连Warning都没有),
发布到别的机器上时运行报错:
Access violation at address 4003D6B3 in module'rtl60.bpl'.
Read of address 00000000.
在另一台装有Delphi 6的机器上调试时也报同样的错误。
我该怎么办?是不是因为D版Delphi的原因?

 
你是否采用了某些三方控件??
 
你是不是在Project->Option里面选择了Build with runtime packages选项,而又没有把rtl60.bpl包随软件一同分发?我觉得可能是这个原因。或者是你分发的rtl60.bplO包有问题。
 
你的系统是否采用了数据库?采用了什么方式访问数据库?什么类型的数据库?
 
可能是用第三方控件,而且沒有把它所需要的文件拷到delphi的目錄下
 
用了3个第三方控件
TeeChart Pro 6.01
TMS.TAdvStringGrid.v1.94
Raize 3.09
使用CreateOleObject调用MSXML 3,读取XML文件。
没有使用数据库。
采用Wise Install制作安装程序,确保所有bpl和XML文件正确全部发布。
这个程序在开发机上运行正确,发布到其它机器上报错。
交付在即,请各位大侠救命!!!
 
TeeChart Pro 6.01在另一台装有Delphi 6的机器上是否装有??
 
你有没有检查一下rtl60.bpl文件引用了那些其它bpl、dcp、dll之类的文件,而你又没有发布?
 
zqw0117兄:请问怎么检查?
app2001兄:在另一台装有Delphi 6的机器上装有TeeChart Pro 6.01,编译时没有问题,
运行时报错了。
 
eXeScope可以查,另外,好像VC上有个工具也可以查的,但我不记得了。
我感觉最大的可能性就是rtl60.bpl引用了某个文件(我怀疑是动态引用的,而不是静态编译进去的引用,如果是动态就查起来很麻烦了,因为eXeScope等软件只能查到静态编译进去的引用),而这个文件你又没有随软件发布。
 
也许你因该一一减少你的功能项,拿个最简项的来到别人机上试试,这样才好确定错误是出在哪个地方的
 
一个最简单的应急办法,就是你把所有bpl和dll都打包发布。
在漫漫的找你的问题,找到告诉我。
有时候没有安装打印机也会报错误的!!!
 
问题已经解决了:)
原因是:MSXMLDOM控件3.0和4.0的差别造成的,开发机上是4.0。
MSXMLDOM3.0中的LoadXML方法,对导入的XML文件的格式要求很严格,
有一点问题就无法load。
4.0的相对宽松,不用表明编码方式也可导入。
血泪教训!望使用XML的朋友注意。
谢谢各位大侠的指教。各位接分。
 
多人接受答案了。
 
后退
顶部