关于C++ Builder编译出来的应用程序不能独立运行问题

STitanium 2004-04-30 09:45:17
不知道为什么,我用C++ Builder编译的应用程序在另外一台没有装C++ Builder的计算机上运行不了,弹出如下信息:
"没有找到BORLNDMM.DLL,因此这个应用程序未能启动。重新安装应用程序可能会修复此问题。"
请问到底是怎么回事?难道C++ Builder编译出来的程序没有了C++ Builder就运行不了吗?还是有什么属性我没有设好?
...全文
440 15 打赏 收藏 举报
写回复
15 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
sunliwen780502 2004-05-03
能不能将BORLNDMM.DLL拷贝过去呢,在把程序拷贝到别的机器上的时候要把你做的所有的文件包括数据库都拷贝过去,然后可能还有设置以下数据源。
  • 打赏
  • 举报
回复
keple 2004-05-03
在prject->Options->Compiler中点击Release,
在prject->Options->Packages中去掉Builder with runtime packages选项
在prject->Options->Linker中去掉Use dynamic RTL 选项
然后, ReBuild ,OK。

  • 打赏
  • 举报
回复
weixing979 2004-05-03
楼主的程序错误好象和打包无关吧,检查一下里面有什么错误。
  • 打赏
  • 举报
回复
lovebcb 2004-05-01
在prject->Options->Compiler中点击Release,
---------------------
如果这项不走,再试试
  • 打赏
  • 举报
回复
ch_builder 2004-05-01
你用什么打包,要是用BCB5的打包程序打包CB5程序一点问题都不应该有,当然你用CB5的那个打包程序打包CB6程序,你可以参看:
用BCB5的打包程序打包BCB6

(本文仅供CSDN与CCRUN使用,其他使用者请作者联系)

当我们用BCB做好了一个程序后,下一步要做的就的打包程序,发布给用户了。单从打包程序的角度来讲,我们的选择会有很多,就BCB来说,每个版本的BCB光盘上都有一个打包程序,对于这些打包程序,我只用过BCB5的与BCB6的,别的版本没有用过,不敢乱加评论,但BCB6带的那个打包程序明显存在问题,对中文的支持也不好,这样不由的想到了是否能用BCB5的打包程序来打包?我在网上咨询过很多朋友,没有朋友能给出一个明确的答案,便自已动手来找其原理,最终成功了,但不可否认这其中我得到了很多网友的支持与提示,这里我将自己的方法提供给大家参考,希望所有支持BCB的朋友喜欢,更希望听到的不同声音,让我们共同深入。

首先确认你的BCB5打包程序已经安装成功,下面我们要完成的是让这个打包程序来打包BCB6程序。

在E:\Program Files\InstallShield\InstallShield Express for C++Builder 5(当然这要看你具体的安装路径,我的是这样的)这里面你应该能找到swdepend.ini与isdepend.ini这两个INI文件,先把这两个文件备份一下。

我们打开isdepend.ini,在[Options]部分中找到“Option12=BDE Database Component Packages”,在这段值的前面加上“;”号,即改成为“;Option12=BDE Database Component Packages”,目的就是把这项给取消。因为有他在“Option3=BDE Control Panel File”就会总起作用,只要你选过相关的数据库项一次,无论你再如何做,在我们的对话框中,这项都永远会被选中。

我们打开最为重要的swdepend.ini文件,进行如下操作:

1)我们把所有50都替换为60,如vcl50.bplàvcl60.bpl;

2)我们把所有Src=HKEY_LOCAL_MACHINE\SOFTWARE\Borland\C++Builder\5.0\RootDir都替换为Src=HKEY_LOCAL_MACHINE\SOFTWARE\Borland\C++Builder\6.0\RootDir;

3)在[VCL WinSys]部分中加上值“Uses2=RTL60.BPL”;

4)在[InpriseThreadedRuntime]部分中把Uses1=CC3245MT.DLL改为Uses1=CC3260MT.DLL;

5)在[VCLDB60 BPL]部分中加上Uses2=DBRTL60.BPL;

6)在[Use Database Packages Support]部分中加上Uses3=ADORTL60.BPL、Uses4=BDERTL60.BPL,原Uses2=VCLDB50 BPL替换成Uses2=VCL WinSys;

7)在[Use STD Packages Support]部分中加上Uses2=InpriseThreadedRuntime;

8)在[Use BDE Database Packages Support]前上“;”,在其下各值前面也加“;”,意图就是把这项废掉;同样在[VCLBDE60.BPL]前加上“;”,在其下的各值前面也加上“;”,因为在BCB6中根本就不存在这样的一个BPL文件。

通过这样的改动后,这个原来专门为BCB5服务的打包程序就可以打包BCB6程序了,相信用过BCB5打包程序的朋友一定会高兴继续用这个打包程序来打包BCB6。当然通过上面的改动我们明白了这个打包程序的工作环境与原理,我们可以通过适当的改动,让他来打包别的开发程序,这就是你的工作了J

你只要选择选择Standard VCL packages与Database Component Packages两项就可以了,并且通过动手修改的那个文件,你就清楚,需要那些BPL了,当然这些BPL你若不是用CB自还的打包工具,你还得注册
  • 打赏
  • 举报
回复
STitanium 2004-05-01
不行啊!ReBuild不了!出现以下错误:
[C++ Error] SysConst.hpp(22): E2316 'ResourceString' is not a member of 'System'
[C++ Error] SysConst.hpp(22): E2040 Declaration terminated incorrectly
[C++ Error] SysConst.hpp(24): E2316 'ResourceString' is not a member of 'System'
[C++ Error] SysConst.hpp(24): E2040 Declaration terminated incorrectly
[C++ Error] SysConst.hpp(26): E2316 'ResourceString' is not a member of 'System'
[C++ Error] SysConst.hpp(26): E2040 Declaration terminated incorrectly
[C++ Error] SysConst.hpp(28): E2316 'ResourceString' is not a member of 'System'
[C++ Error] SysConst.hpp(28): E2040 Declaration terminated incorrectly
[C++ Error] SysConst.hpp(30): E2316 'ResourceString' is not a member of 'System'
[C++ Error] SysConst.hpp(30): E2040 Declaration terminated incorrectly
[C++ Error] SysConst.hpp(32): E2316 'ResourceString' is not a member of 'System'
[C++ Error] SysConst.hpp(32): E2040 Declaration terminated incorrectly
[C++ Error] SysConst.hpp(34): E2316 'ResourceString' is not a member of 'System'
[C++ Error] SysConst.hpp(34): E2040 Declaration terminated incorrectly
[C++ Error] SysConst.hpp(36): E2316 'ResourceString' is not a member of 'System'
[C++ Error] SysConst.hpp(36): E2040 Declaration terminated incorrectly
[C++ Error] SysConst.hpp(38): E2316 'ResourceString' is not a member of 'System'
[C++ Error] SysConst.hpp(38): E2040 Declaration terminated incorrectly
[C++ Error] SysConst.hpp(40): E2316 'ResourceString' is not a member of 'System'
[C++ Error] SysConst.hpp(40): E2040 Declaration terminated incorrectly
[C++ Error] SysConst.hpp(42): E2316 'ResourceString' is not a member of 'System'
[C++ Error] SysConst.hpp(42): E2040 Declaration terminated incorrectly
[C++ Error] SysConst.hpp(44): E2316 'ResourceString' is not a member of 'System'
[C++ Error] SysConst.hpp(44): E2040 Declaration terminated incorrectly
[C++ Error] SysConst.hpp(46): E2316 'ResourceString' is not a member of 'System'
[C++ Error] SysConst.hpp(46): E2228 Too many error or warning messages
  • 打赏
  • 举报
回复
lovebcb 2004-05-01
如果是ADO+ACCESS,

在prject->Options->Compiler中点击Release,
在prject->Options->Packages中去掉Builder with runtime packages选项
在prject->Options->Linker中去掉Use dynamic RTL 选项
然后, ReBuild ,OK。

然后,直接拷过去就行了。
  • 打赏
  • 举报
回复
STitanium 2004-05-01
我是用ADO,我应该怎办?救救我,就来要交了。
  • 打赏
  • 举报
回复
ch_builder 2004-05-01
这个文件是CB程序运行必须需要的,你必须打包进去,当然不清楚你用什么样的打包程序?至于全编译的程序,我记得好象在设置中有的地方你把几个CB运行链打进去,你可以自行检查一下:)
  • 打赏
  • 举报
回复
weixing979 2004-04-30
如果是BDE的话
把X:\Program Files\Borland\CBuilder6\MergeModules 这个文件夹下的文件拷到X:\Program Files\InstallShield\InstallShield Express Borland Limited Edition\Objects下。
用BCB6自带的InstallShield Express-Borland Limited Edition 制作安装文件时,在第二步
Specify Application Data 的Objects/Merge Modules 会多出一些选项,选上BDE_ENT 出现BDE Designer 按取消按钮, 确保BDE_ENT被选中。以下步骤同其他制作方法相同。   
建议采用ADO。
  • 打赏
  • 举报
回复
lovebcb 2004-04-30
BDE就麻烦了……
  • 打赏
  • 举报
回复
lovebcb 2004-04-30
用的是什么数据库?
用的是BDE,还是ADO ?
  • 打赏
  • 举报
回复
STitanium 2004-04-30
我做的是数据库,那具体应该怎样做呢?
  • 打赏
  • 举报
回复
lovebcb 2004-04-30

在prject->Options->Compiler中点击Release,
在prject->Options->Packages中去掉Builder with runtime packages选项
在prject->Options->Linker中去掉Use dynamic RTL 选项
然后, ReBuild ,OK。

当然,这是不涉及数据库,如果是数据库需要用InstallShell Express安装需要的相关的东东。
  • 打赏
  • 举报
回复
killerxxxxxx 2004-04-30
project->options->link选项卡把ATL Dynamic复选的勾取消
再把project->options->package选项卡的下边那个复选勾取消
  • 打赏
  • 举报
回复
发帖
C++ Builder

1.3w+

社区成员

C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
帖子事件
创建了帖子
2004-04-30 09:45
社区公告
暂无公告