unknown heap name引发Error detected (LME288)从而Unable to perform link有关问题的解决

unknown heap name引发Error detected (LME288)从而Unable to perform link问题的解决
unknown heap name引发Error detected (LME288)从而Unable to perform link问题的解决
2015-02-24
在使用C++Builder XE系列的早期过程中发现,C++Builder的某些版本提供了两个几乎一模一样的控件SpinEdit和CSpinEdit,而另一些相邻的版本中可能只有其中一个,而且奇怪的是,如果在一个版本中使用了其中的一个或两个,在新版本中即时同时提供了这两个控件的话,工程也无法编译执行,提示错误如下所示:

编译错误信息:
[ilink32 Warning] Warning: unknown heap name   : 0x08000000 / 0x08000000
[ilink32 Warning] Warning: Error detected (LME288)
[ilink32 Error] Error: Unable to perform link
编译错误信息解释:
unknown heap name 未知的堆名,可能是产生下面其它警告或错误提示的关键
Error detected (LME288) 检测到错误LME288
Unable to perform link 无法执行连接,一般是工程目录里的Win32\Debug目录中没有产生编译好的.exe文件

在Windows 7 64位旗舰版 C++Builder XE7过程中编译XE6的工程时这些问题重新出现
在这些错误中,遍寻网络也未找到LME288是什么错误,也没有任何根本的解决方法,仅仅在官方网站提供的早期版本BUG修复列表中知道它是连接器返回的错误信息,详见:http://edn.embarcadero.com/article/43069
根据这些信息,我们推理出故障的原因是,连接器因为一个名称的异常而返回了一个错误并停止了工作,IDE直接返回这些错误代码给用户,没有告知错误的来源。
之前的解决方法是用一个空的窗体替换不能编译工程中的对应窗体,然后重建这些窗体的界面和代码,在SpinEdit或CSpinEdit使用较多的情况下这是非常的麻烦的,在偶然的过程中找到了不重建窗体的解决办法:
第一步:关闭所有C++Builder,删除工程目录中的__history和Win32两个目录
第二步:启动一个新的IDE,新建一个空白VCL Forms Application工程,不保存,直接最小化
第三步:再重新启动一个新的IDE,通过菜单File->Open Project...打开原来的工程,编译即可

图文版详见我的博客
------解决思路----------------------
这个方法好,解决了我的问题