Jon*_*den 3 delphi com typelib delphi-xe
我写了一个测试项目,它暴露了一个COM工厂和对象.测试并发现我们的实现工作 - 我现在想将代码+类型库移动到我们的主项目中.我将RIDL + TLB文件复制到主项目文件夹中.我相应地重命名了两个文件(到主项目名称).我还删除了项目资源文件,以防Delphi将TLB数据放在这里.当然我删除了旧的TLB和RIDL文件(我还删除了所有DCU文件,以防万一).最后,我将RIDL文件添加到主项目并进行编译.
Delphi在编译期间拾取RIDL文件,它按预期生成TLB文件,但不知何故它不会将TLB数据注入exefile.因此,当我启动应用程序时,我只是收到一条错误消息"无法加载类型库".在我的代码中,我在启动时自动创建COM工厂并更新Windows注册表.关机时会发生相反的情况.
摆弄了类型库编辑器几个小时,尝试从Delphi和shell/regsvr32注册typelibrary/exe,delphi因为一些神奇的原因选择了新文件,一切都按预期工作.
问题是,我不知道"为什么"它开始时没有工作,也不知道为什么它在几小时尝试不同组合后起作用.所以我无法重现成功.更新我们的代码库时,我必须在另一台计算机/修订版上做同样的事情 - 但这次它拒绝工作.
如何强制Delphi注入类型库?是否存在一些"技巧"(除了显而易见的刷新RIDL,它正确生成单元但没有对TLB资源问题做任何事情).