首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我需要64位版本的stdvcl40.dll吗?

我需要64位版本的stdvcl40.dll吗?
EN

Stack Overflow用户
提问于 2014-06-25 14:14:50
回答 1查看 1.8K关注 0票数 6

我将部署一个用Delphi编写的64位版本的OCX。OCX要求stdvcl40.dll可用并在目标系统中注册。据我所知,在我的Delphi安装中只有32位版本,但是由于源代码是可用的,我应该能够自己创建一个64位版本。

这样做是否有必要或有好处?还是应该坚持所包含的版本,只部署该版本?

编辑只是为了给出一些背景: StdVCL40.dll主要包含一个类型库,公开了在System.Win.StdVCL.pas中声明的三个接口。这个dll的后期版本还实现了一些处理这些接口的属性页。

将依赖关系移至stdvcl40.dll的结果是,这些接口(在我的示例中是IStrings)在我的类型库中不再可用,任何引用都被IDispatch替换。

stdvcl40.dll不是一个设计时包,它必须与我的大多数ActiveX库一起部署在以前的Delphi版本中。我必须部署它,因为否则OCX首先拒绝注册。

实际上,它似乎也适用于我的OCX的64位版本,可能是因为Windows足够聪明地发现没有64位版本,因此采用了32位版本。虽然我不确定这是不是该走的路。所以我的问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-25 18:11:06

我猜这个DLL仅用作类型库的存储(定义了IStrings等),至少在您的情况下是这样的。然后回答是“不”,你不需要x64版本。注册此x32 DLL时,x32/x64应用程序都可以使用类型库。对不起,我现在不能检查,所以这只是猜测。

您可以注册stdvcl40.tlb (它的大小只有3kb,所以部署起来容易得多),那么您的OCX将依赖于"stdvcl40.tlb“而不是"stdvcl40.dll”(也许您必须取消检查DLL并从类型库编辑器的“使用”选项卡中检查TLB,但我不确定它是否必要,但在我的测试项目中,我不再依赖于DLL )。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24411096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档