救急,发布后报Class ... Not Found 错(200分)

  • 主题发起人 主题发起人 morowind
  • 开始时间 开始时间
M

morowind

Unregistered / Unconfirmed
GUEST, unregistred user!
我的程序中,窗口类都被分开写在几个BPL包里,用RegisterClass注册了,主程序启动后加载,调用时用FindClass找到窗口类再创建。现在问题是,程序在我们开发环境下运行一切正常,但是打包在用户的机器上安装后,启动时一切正常,主界面都能出来,但是打开BPL包里的窗口时,就会报Class ... Not Found的错误,就是窗口类没找到。
后来怀疑是BPL包没有正常加载,但是在程序启动时做日志显示,所有的BPL都正常加载了。现在小弟黔驴技穷了,各位大侠救救急,我已经快疯了~
 
虽然不明白为什么要把窗口写在Bpl里,但还是顶一个。
 
检查这个窗体是否在加载前注册了,这个错误肯定是没有注册窗口类,一般是在initialization部分注册
 
你的主程序要Build with runtime packages。程序发布时把Delphi的RTL也发布。
 
所有的窗口都是在各自单元的initialization部分用RegisterClass先注册的。
主程序也是用Build with runtime packages选项编译的,所有其他引用的包都一起发布了。
可是在用户的机器上主程序启动正常,就是点击菜单打开子窗口时,就报错了。
 
估计不是窗体类没找到,而是对应的bpl没找到。
看看是不是搜索路径问题。
 
如果在本机上都没报错,并且在initialization注册了类的话,还有对于BPL的Option设置Build with runtime packages,那么可能就是路径问题了。
 
这个问题解决得也很奇怪,我实在没办法了,后来发现把整个程序文件夹复制到另外一个地方,运行就可以了,最后再把它复制回原来的地方,再运行也可以了,真是晕啊!
 

Similar threads

D
回复
0
查看
778
DelphiTeacher的专栏
D
D
回复
0
查看
818
DelphiTeacher的专栏
D
后退
顶部