Sto per distribuire una versione a 64 bit di un OCX scritto in Delphi. L'OCX richiede stdvcl40.dll per essere disponibile e registrato nel sistema di destinazione. Per quanto ne so, c'è una versione a 32 bit presente nell'installazione di Delphi, ma dato che le fonti sono disponibili dovrei essere in grado di creare da solo una versione a 64 bit.Ho bisogno di una versione a 64 bit di stdvcl40.dll?
Esiste una necessità o un vantaggio in tal senso oppure devo attenermi alla versione contenuta e distribuirla solo in quella?
Modifica solo per dare un po 'di storia: StdVCL40.dll contiene principalmente una libreria dei tipi di esporre tre interfacce dichiarati nel System.Win.StdVCL.pas. Versioni successive di questa DLL implementano anche alcune pagine di proprietà che gestiscono queste interfacce.
Il risultato della rimozione della dipendenza da stdvcl40.dll è che queste interfacce (IStrings nel mio caso) non sono più disponibili nella libreria dei tipi e qualsiasi riferimento viene sostituito con IDispatch.
stdvcl40.dll non è un pacchetto in fase di progettazione e doveva essere distribuito insieme alla maggior parte delle mie librerie ActiveX nelle precedenti versioni di Delphi. Devo distribuirlo perché altrimenti l'OCX si rifiuta di registrarsi in primo luogo.
In realtà sembra funzionare anche con la versione a 64 bit del mio OCX probabilmente perché Windows COM è abbastanza intelligente da capire che non esiste una versione a 64 bit e quindi accetta la versione a 32 bit. Anche se non sono sicuro se questa è la strada da percorrere. Quindi la mia domanda.
StdVclXX.dll è una DLL ridistribuibile elencata nella guida di distribuzione per le versioni precedenti di Delphi. Ma per quanto posso dire, non è più necessario nella moderna Delphi. La guida alla distribuzione non la elenca più. –
@DavidHeffernan, in pratica definisce solo alcune interfacce (IStrings, IProvider, IDataBroker) in cui attualmente utilizzo IStrings. Ciò che mi infastidisce è che viene automaticamente incluso quando si crea una nuova libreria ActiveX, anche in XE6. –
Forse è solo storico e hanno dimenticato di rimuoverlo dal nuovo modello di progetto. Hai provato a rimuovere qualsiasi riferimento a stdvclxx dal progetto? –