2006年10月19日星期四

wine上跑Delphi 7

某天在Delphi盒子上看见一个mini版本的Delphi7,只有5M大小,解压后简单设置一下就可以跑起来。现在常常很不愿意跑个笨重的BDS 2006做简单的试验或者制作界面原型。这个东西正合适。

回家又想,能不能在wine上面跑起来?于是动手来折腾,过程中碰到一些问题,不过到现在终于比较满意了。



1.基本安装

1.1 该安装程序实际是一个RAR的自解压包,随便解压(安装)到人和位置都可以(以下假设为C:Delphi7)。

1.2 解压后完成后会自动调用regd7.exe,这实际上也是一个自解压包,里面包含了调试器代理bordbk70.dll, 注册表数据delphi7.reg和注册信息REGISTRY.SLM。它的解压位置为%USERPROFILE%\.borland,但wine上面 USERPROFILE这个环境变量不一定能正确翻译出来(在Windows上是X:\Documents and Settings),会解压到Program Files里面去。

1.2.1将bordbk70.dll拷贝到C:\Delphi7, 运行regsvr32.exe bordbk70.dll;

1.2.2 然后运行regedit导入delphi32.reg;如果搞不定(没有regedit或者导入不成功),可以直接编辑~/.wine/user.reg,把内容拷贝过去,不过要注意删除HKEY_CURRENT_USER这几个字。

1.2.3 最后建立目录X:\Windows\.borland,将注册信息REGISTRY.SLM拷贝到这个目录下。另外要导入如下内容到HKEY_CURRENT_MACHINE:

 [SoftwareBorlandDelphi7.0] 1160143880

"App"="C:\Delphi7\bin\Delphi32.exe"

"LMKEY"="QX8-EEC"

"LMLIC"="6AKD-PD29Q9-RDF?JQ-X65Z"

"LocalSharedRoot"="C:\Delphi7\Shared"

"RootDir"="C:\Delphi7"

"UseSharedFiles"="TRUE"

"Version"="PRO"

然后就可以运行了: wine c:\delphi7\bin\delphi32.exe

(如果调试时设置了断点但不能停下来,请检查bordbk70.dll是否正确注册; 如果报告delphi没有注册或者没有找到d7reg.exe,请检查上面第1.2.3步)

注意那个mini包带的都是原来delphi7的,没有打过补丁,建议用补丁后的版本(如果你手头没有,可以下载这个所谓的delphi 7 second edition (delphibox下载, delphifans下载))。

2. 加装一些东西

这个mini版本是够精简的,东西很少,连Code Explorer和To-Do List也没有,如果你有Delphi 7 Professional,可以从拷贝vclie70.bpl, vclhie70.bpl, proide70.bpl和delphipro70.bpl这几个文件过来,在Component->Install Packages...中加载delphipro70.bpl即可。

另外也可以安装GExpertsCnWizards,这两个专家包都是针对Personal版本测试过的,尽量减少了对Professional或者Enterprise版本采用的特性的依赖。不过对于Castalia就没有那么好运了。

3.其它

也许你会很愿意让X的窗口管理器来管理Delphi7的窗口,因为它不管是主窗口还是工具窗口都显示成一样,CnWizards的一些扩展按钮也看不着,更重要的是,窗口一拖动就糊成一团,工具窗口的docking也不起作用。

那就改为非managed模式吧: 运行regedit,建立如下内容

 [HKEY_CURRENT_USER\Software\Wine\AppDefaults\delphi32.exe\X11 Driver]

"Managed"="N"
注意改成这样delphi在任务条上是看不见的了,最下化后请去桌面左下角找图标 :-)


没有评论: