从Powerbuilder应用程序中调用.Net COM程序集(无需注册)

4
我们有一个使用.Net COM组件的Powerbuilder 10应用程序。我们正在尝试将清单嵌入PB应用程序中(以便在不注册的情况下调用COM组件)。合并后的清单文件已添加了依赖于.Net COM组件的部分。我们尝试使用各种工具注入新的清单,但结果不同: - 使用GenMan32进行注入会将应用程序从6MB截断到45KB。 - 使用ResourceTuner,文件大小看起来还可以,但尝试启动应用程序会出现“致命磁盘错误”。
有没有关于如何在不注册的情况下调用.Net ComEnabled组件的建议?
2个回答

2
您尝试过使用外部清单并确保其有效吗? 如果外部清单无法正常工作,则说明清单信息不正确。
一旦您拥有有效的外部清单,您可以尝试使用.NET SDK中的清单工具(MT.EXE)。 它与真正的EXE文件配合得很好。 正如Terry所指出的那样,PB生成的可执行文件包含额外的信息,需要尊重操纵EXE的工具,否则它们将破坏该文件。 http://blogs.msdn.com/patricka/archive/2009/12/09/answers-to-several-application-manifest-mysteries-and-questions.aspx

1

这更像是一个重定向而不是答案。你需要知道的一件事是,PowerBuilder生成的可执行文件不遵循Windows可执行文件的标准。它们本质上是一个引导程序,用于加载PowerBuilder虚拟机,以及一组类定义(对象)。你提出的情况并不是我听说的第一个,其中修改可执行文件的工具无法处理PowerBuilder可执行文件。

至于其他方向的积极贡献,我不太了解,无法给出合格的建议。如果是我,我会尝试在ConnectToNewObject()失败时注册COM对象,但我不知道是否可能或者这条路是否是死路。

祝好运,

Terry。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接