加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-15 09:51:17 所属栏目:大数据 来源:网络整理
导读:我将部署一个用Delphi编写的64位版本的OCX. OCX要求stdvcl40.dll可用并在目标系统中注册.据我所知,我的Delphi安装中只有32位版本,但由于源代码可用,我应该能够自己创建64位版本. 是否需要或有优势这样做,还是应该坚持使用所包含的版本并仅部署该版本? 编辑
我将部署一个用Delphi编写的64位版本的OCX. OCX要求stdvcl40.dll可用并在目标系统中注册.据我所知,我的Delphi安装中只有32位版本,但由于源代码可用,我应该能够自己创建64位版本.

是否需要或有优势这样做,还是应该坚持使用所包含的版本并仅部署该版本?

编辑
只是为了给出一点背景知识:StdVCL40.dll主要包含一个类型库,它暴露了在System.Win.StdVCL.pas中声明的三个接口.此dll的更高版本还实现了一些处理这些接口的属性页.

删除对stdvcl40.dll的依赖性的结果是这些接口(在我的情况下为IStrings)在我的类型库中不再可用,并且任何引用都被IDispatch替换.

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

它实际上似乎也适用于我的OCX的64位版本,可能是因为Windows COM非常聪明,可以发现没有64位版本,因此需要32位版本.虽然我不确定这是否可行.因此我的问题.

解决方法

我想这个DLL仅用作类型库的存储(带有IStrings等的定义),至少在你的情况下.然后回答是“NO”,你不需要x64版本.注册此x32 DLL时,类型库应该可用于x32 / x64应用程序.对不起,我现在无法检查,所以这只是猜测.

UPDATE你可以注册stdvcl40.tlb(它的大小只有3kb,因此它更易于部署),然后你的OCX将依赖于“stdvcl40.tlb”而不是“stdvcl40.dll”(也许你必须取消选中DLL和检查TLB从类型库编辑器的“使用”选项卡,但我不确定它是否是必要的,但在我的测试项目中,我不再依赖DLL了.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读