我们使用FastReport生成报告.实际上,我们支付访问源代码的费用.
我们目前正在使用FastReport的最新稳定版本.虽然它对于我们的制作足够稳定,但每当我编译时,我都会看到:
[dcc32 Hint] fs_iinirtti.pas(369): H2443 Inline function 'TList.Remove' has not been expanded because unit 'System.Types' is not specified in USES list
[dcc32 Hint] fs_iclassesrtti.pas(656): H2443 Inline function 'TList.Remove' has not been expanded because unit 'System.Types' is not specified in USES list
[dcc32 Hint] fs_iclassesrtti.pas(1014): H2443 Inline function 'TList.Remove' has not been expanded because unit 'System.Types' is not specified in USES list
[dcc32 Hint] fs_idialogsrtti.pas(159): H2443 Inline function 'TList.Remove' has not been expanded because unit 'System.Types' is not specified in USES list
[dcc32 Hint] fs_igraphicsrtti.pas(252): H2443 Inline function 'TList.Remove' has not been expanded because unit 'System.Types' is not specified in USES list
[dcc32 Hint] fs_iformsrtti.pas(429): H2443 Inline function 'TList.Remove' has not been expanded because unit 'System.Types' is not specified in USES list
Run Code Online (Sandbox Code Playgroud)
我不是提示的粉丝,更不用说我的代码中的警告了.当然,现在,H2443提示可能不是最令人不安的提示,但我仍然想摆脱它.
幸运的是,如果它是我们自己的代码,H2443很容易修复(只需添加它要求的引用).但即使我们在这种情况下可以访问第三方源代码,但突然改变它是不合适的.
所以我想知道:我应该等待FastReport的开发人员在没有错误的情况下发布新版本,还是我自己修复它,然后在新版本发布时简单地覆盖我的源文件副本?
我想这个问题在技术上可以推广到如何处理第三方库中的提示/警告.我想过要通知开发人员,但这不是一个开源/自由软件项目,所以修复不会持续几个月.
(公平地说,我应该提一下,在以前的版本中曾经有过更多的提示,所以至少在正确的方向上有一些步骤.)
这是我经常在Delphi开发人员中看到的一个常见错误(也有许多第三方供应商做错了).为什么每次构建项目时都要编译第三方库?
使用DCU.将它们与源分开,并将库路径指向包含DCU的目录.这不仅加快了您的构建过程(因为它不会再次编译第三方源,而是使用DCU),它也不会使您的项目充斥着来自第三方库的消息.
如果您想要进入这些组件的源代码(您通常不希望根据我的经验),您可以将源添加到浏览路径,甚至可以调试和释放您正在使用的DCU.
这是我做的:
第三方库在本地获得自己的源代码控制库.如果它们是开源的,我会尝试克隆上游存储库.如果没有,则每个新版本都是供应商分支中的新提交.我修复的任何提示/警告/错误都会被提交到不同的分支并发送给供应商.如果他们接受修复,那太好了!如果没有,那么我自己仍然有补丁,新的上游版本只是合并到我自己的分支.
| 归档时间: |
|
| 查看次数: |
1355 次 |
| 最近记录: |