Do I need a 64-bit version of stdvcl40.dll?

I am going to deploy a 64-bit version of OCX written in Delphi. OCX requires stdvcl40.dll to be available and registered on the target system. As far as I know, in my Delphi installation there is only a 32-bit version, but as soon as the sources are available, I have to create a 64-bit version myself.

Is there a need or advantage for this, or should I stick to the contained version and only deploy it?

Edit Just to give a little background: StdVCL40.dll basically contains a type library displaying the three interfaces declared in System.Win.StdVCL.pas. Later versions of this DLL also implement some property pages that process these interfaces.

The result of removing the dependencies on stdvcl40.dll is that these interfaces (IStrings in my case) are no longer available in my type library, and any link is replaced with IDispatch.

stdvcl40.dll is not a development-time package and should be deployed along with most of my ActiveX libraries in previous versions of Delphi. I need to deploy it because OCX refuses to register first.

Actually, this seems to work with the 64-bit version of my OCX, probably because Windows COM is smart enough to realize that there is no 64-bit version and therefore occupies the 32-bit version. Although I'm not sure this is the way to go. So my question is.

+6
source share
1 answer

I assume that this DLL is used as storage only for the type library (with the definition of IStrings, etc.), at least in your case. And then the answer is "NO", you do not need the x64 version. When you register this x32 library, the type library should be available for x32 / x64 applications. Sorry, I can’t check it now, so this is just a hunch.

UPDATE You can register stdvcl40.tlb (it’s just 3kb, so it’s much easier to deploy), then your OCX will depend on “stdvcl40.tlb” instead of “stdvcl40.dll” (you may need to uncheck the DLL and check the TLB from Use tab of the type library editor, but I'm not sure if this is necessary, but in my test project I no longer have a dependency on the DLL).

+2
source

Source: https://habr.com/ru/post/971339/


All Articles