我用D6编写的4个英文软件全部在英文WIN98下运行出错,难道是D6的BUG吗?(100分)

  • 主题发起人 主题发起人 leser
  • 开始时间 开始时间
L

leser

Unregistered / Unconfirmed
GUEST, unregistred user!

我用D6编写的4个英文软件能够正常运行于中文WIN98,NT,WIN2000,XP下,
但是我将这四个软件在英文WIN98下安装时并运行时,弹出两个出错对话框:

1。Error Starting Program: The MP3PLAYER.EXE file is linked to missing
export OLEAUT32.DLL:VarNot.

2.Error: Unable to execute file:
C:/Program Files/Mp3Player/Mp3player.exe
CreateProcess failed;code31.
A device attached to the system is not functioning.

很奇怪啊,我在我的软件中没有用任何的数据库控件,我在运行出错的英文98系统
上安装ADO2.1包后,我的全部软件都能在英文98下运行了,我查了一下,在出错前,
系统SYSTEM目录下的oleaut32.dll是2.20版本的,但我安装ADO后,该oleaut32.dll
的版本变为2.40。

难道D6编写的软件都要ADO2.1以上版本的包支持才能运行吗?请知道问题的高手
能出来讲讲,我该如何做,难道要我将整个的ADO包同我的软件一起做成安装包吗?
这样不是软件安装包的体积变大好几倍?请告诉详细的解决方法。
 
oleaut32.dll这个DLL应该是用来支持OLE自动化的,可能中文系统中的此文件与英文系统中
的不兼容。不知你的程序是否用了OLE对象。
 
to yyk518:
我没有用任何的OLE对象,哪怕我只将一个简单的FORM编译成一个EXE后,到英文版98下都提示
出错:
1。Error Starting Program: The MP3PLAYER.EXE file is linked to missing
export OLEAUT32.DLL:VarNot.

2.Error: Unable to execute file:
C:/Program Files/Mp3Player/Mp3player.exe
CreateProcess failed;code31.
A device attached to the system is not functioning.

难道D6编写的程序都要oleaut32.dll2.40以上版本的支持吗?
 
我也碰到这个问题了。是操作系统本身的问题。你自己查下,英文98下的这个文件,比中文系统里的文件
要小。解决方法,是在英文98的环境下编译一遍,就好用了。而且,放在中文下,是没有问题的。
D5开发的,一样会在英文环境下出问题。在英文环境下,重新编译,就好了。
 
to 816:
我现在就到英文98上安装D6试试看,谢谢你。
 
to 816:
我在英文98上安装D6重新编译程序,没问题了,再次谢谢你。
 
后退
顶部