我做的程序离不开delphi(100)

  • 主题发起人 主题发起人 flexsys
  • 开始时间 开始时间
F

flexsys

Unregistered / Unconfirmed
GUEST, unregistred user!
我做了个程序,放到一台没有delphi的环境下用,居然不能运行。安装了delphi后就可以运行了。不是数据库的原因。
 
单击Delphi主界面的“Project”菜单后选择“Options...”菜单(也就是最后一个菜单,也可以直接按下 Shift+Ctrl+F11 组合键),在弹出的对话框中选择“Packages”标签,看看是否勾选了“Build with runtime packages”复选框,如是,应该去除这个复选框,然后再编译生成exe(注意:此时生成的exe文件会变大)看看是否可以脱离Delphi环境运行。
 
楼上正解
 
都啥正解啊。、delphi默认的就是“Build with runtime packages”除非你主动取消。看看出错信息是啥!你查查你的程序是否引用了delphi附带的dll文件吧。
 
对不起,昨天有事没上来。确实不是正解,szhcracker说的我注意到了,没用。apiao。运行后出错信息是“Acess violation at ..................”框,而且不停地跳出许多,没完没了。
 
多用几个tryexceptend 记录下log,看下具体哪个地方出的错误,然后把出错地方的代码发上来看你刚刚发的错误,估计是对一个不存在的对象操作了
 
我做的是一个工控程序。用了teechar图形,rave报表,bde。还使用了些第三方控件,如spcomm(串口),flatstyle(美化按钮),myLEDfont(用LED字体显示数据),是不是这些第三方控件的原因呢?
 
spcomm(串口)可能有问题,你先把能去掉的第三方控件都去掉试试
 
应该不是spcomm的问题。其他几个界面也运行spcomm,但都正常。只能砍掉其他控件试试。难道就没有把其他控件一起打包的方法吗?毕竟在有delphi的环境下,他们工作得挺好啊
 
不会是用了BED之类的吧,或者是dbexpress的数据库驱动没带
 
我用的的是delphi7,打包就用installshield for d7
 
bde我还是懂打包的
 
尽量使用带源码的三方控件,有些第三方控件没有什么太大作用就不要使用,象你用的那个flatstyle(美化按钮)可能就没多大必要,或者你可以自己写一个专门的按钮控件使用,所以开发时还是尽量少用三方控件,要用也要用那些成熟的控件,不要用一些冷门的(你自己开发的除外)、就一个安装包之类的东东(特别是没有源码的)。祝你好运。
 
这些控件都带源码
 
用cnpack的cnmemprof看看哪里有mem leak
 
不行啊,我把所有第三方控件都删除了,除了spcomm(这个绝不会有问题)。问题依旧。只要一装delphi就灵,哪怕是装那个简装的delphi7。
 
问题解决我自己解决了。不干控件的事。解决的过程是这样的:我把delphi的目录一个一个的删掉,最后发现bin目录不能删。再把bin下的文件删除,最后发现midas.dll不能删,删了就没法运行。在大富翁上一搜索midas.dll,发现这篇文章http://www.delphibbs.com/delphibbs/dispq.asp?lid=3452935其中duhai_lee提到: “MidasLib单元在Delphi6中才有,是Lib目录下的一个dcu文件。一旦在你的源程序中引用了MidasLib单元,程序运行时就不再需要MIDAS.DLL文件。 然而,编译后程序大小一定会增加200k以上,即使使用包编译模式。”好了,在uses里加上midasLib,重新编译。搞定!为了答谢各位的热心,散分。
 
多人接受答案了。
 
后退
顶部