Este artigo orienta clientes que utilizam os componentes TecnoSpeed em projetos Delphi e estão realizando a migração da arquitetura Win32 para Win64.
Índice
- É necessário um instalador especial para 64 bits?
- Pré-requisito: versão do Delphi
- Status x64 por componente
- O que o instalador instala para Win64
- Duas formas de usar o componente em 64 bits
- DCPs e BPLs — por que são 32 bits?
- Procedimento de migração
- Dúvidas frequentes
É necessário um instalador especial para 64 bits?
Não. O instalador padrão TecnoAccount (setup_[componente]_tecnoaccount_*.exe) já inclui os artefatos necessários para compilação 64 bits. Não existe um instalador separado para x64 — o mesmo pacote instala DCUs, DLLs e OCXs para as duas arquiteturas.
Pré-requisito: versão do Delphi
O suporte a Win64 no Delphi foi introduzido a partir do Delphi XE2. Versões anteriores (D7, D2006, D2007, D2009, D2010 e XE) não possuem compilador 64 bits — isso é uma limitação do próprio compilador, não dos componentes.
| Versão do Delphi | Suporte a Win64 |
|---|---|
| D7, D2006, D2007, D2009, D2010, XE | ❌ Não suportado |
| XE2, XE3, XE4, XE5, XE6, XE7, XE8 | ✅ Suportado |
| 10 Seattle, 10.1 Berlin, 10.2 Tokyo, 10.3 Rio, 10.4 Sydney | ✅ Suportado |
| 11 Alexandria, 12 Athens, 13 Florence | ✅ Suportado |
Status x64 por componente
O nível de suporte x64 varia conforme o componente:
| Componente | DCUs x64 | DLLs / OCXs x64 | Library Path Win64 automático |
|---|---|---|---|
| NFe | ✅ | ✅ NFeX.dll, NFeGovX.ocx, spdNFeLibUNICODE.dll | ✅ |
| CTe | ✅ | ✅ | ✅ |
| CTe-OS | ✅ | ✅ | ✅ |
| MDF-e | ✅ | ✅ | ✅ |
| NFC-e | ✅ | ✅ | ✅ |
| CF-e SAT | ✅ | ✅ | ✅ |
| NF-COM | ✅ | ✅ | ✅ |
| SPED Fiscal | ⚠️ Fontes TLB — compilar no projeto | ✅ OCX 64 bits | ✅ |
| eSocial | ⚠️ Fontes TLB — compilar no projeto | ✅ OCX 64 bits | ✅ |
| Reinf | ⚠️ Fontes TLB — compilar no projeto | ✅ OCX 64 bits | ✅ |
O que o instalador instala para Win64
NFe, CTe, CTe-OS, MDF-e, NFC-e, CF-e SAT e NF-COM
Ao instalar com Delphi XE2 ou superior, o instalador:
- Copia as DCUs compiladas para Win64 na pasta
{app}\Fontes_x64 - Registra as DLLs e OCXs 64 bits em
System32e as versões 32 bits emSysWOW64— ambas coexistem na mesma máquina - Configura automaticamente o Library Path Win64 do Delphi apontando para
Fontes_x64, desde que a opção "Adicionar à Library Path do Delphi" esteja marcada durante a instalação
SPED Fiscal, eSocial e Reinf
O instalador inclui:
- Os arquivos-fonte da TLB (type library) em
{app}\Fontes_x64. Não são DCUs pré-compiladas — o cliente referencia esses arquivos no projeto Delphi e o compilador Win64 gera as DCUs localmente -
OCXs 64 bits registrados em
System32 - Registro automático do Library Path Win64 do Delphi apontando para
Fontes_x64
Duas formas de usar o componente em 64 bits
| Componente VCL (pacote .bpl) | DLL / OCX via COM | |
|---|---|---|
| Como funciona | Projeto Delphi referencia diretamente as units do componente (uses spdNFe) |
Projeto acessa o componente via interface COM (IspdNFeX) sem depender das units internas |
| Requisito de arquitetura | DCUs devem estar compiladas para a mesma arquitetura do projeto (Win32 ou Win64) | Independente — um projeto Win64 pode chamar o OCX registrado em System32 sem DCUs x64 |
| O que o instalador fornece | DCUs em Fontes_x64\ + Library Path configurado |
DLL/OCX 64 bits registrado em System32
|
| Quando preferir | Projetos Delphi que já usam o componente como VCL nativo | Projetos multi-linguagem ou quando se quer independência de versão do componente |
DCPs e BPLs — por que são 32 bits?
Os arquivos .dcp e .bpl presentes em C:\Program Files (x86)\Embarcadero\Studio\23.0\bin são os pacotes de design-time — instalados para que os componentes apareçam na paleta do IDE. O IDE do Delphi é um aplicativo 32 bits, portanto esses arquivos são e sempre serão 32 bits. Isso é esperado e correto.
Esses arquivos não são os que a aplicação Win64 deve usar. Para compilar um executável Win64, o Delphi não usa BPLs — ele usa as DCUs compiladas para Win64 presentes na pasta Fontes_x64, linkando o código do componente diretamente no executável (linkagem estática).
| Arquivo | Finalidade | Arquitetura | Usado pela aplicação Win64? |
|---|---|---|---|
spdNFE_D12A.bpl / .dcp
|
Paleta do IDE (design-time) | 32 bits | ❌ Não |
Fontes_x64\*.dcu |
Compilação do executável Win64 | 64 bits | ✅ Sim — via Library Path |
NFeX.dll (System32) |
Acesso via COM/OCX | 64 bits | ✅ Sim — se usar interface OCX |
A paleta do IDE continua funcionando normalmente com os BPLs 32 bits instalados, mesmo que o projeto esteja configurado para Win64. Design-time e runtime são independentes.
Procedimento de migração
-
Baixe e execute o instalador TecnoAccount disponível no portal do cliente.
Na tela de seleção de componentes, verifique se a opção referente à sua versão do Delphi está selecionada. -
Marque a opção "Adicionar à Library Path do Delphi" durante a instalação.
Isso registra automaticamente o caminhoFontes_x64no Library Path da plataforma Win64 do Delphi. - No projeto Delphi, altere a plataforma alvo de Win32 para Win64 em Project > Options > Target Platforms.
-
Verifique o Library Path manualmente caso a opção automática não tenha sido marcada: Tools > Options > Language > Delphi > Library > Win64 deve conter o caminho
{pasta de instalação}\Fontes_x64. - Recompile o projeto para Win64 e valide o funcionamento.
Dúvidas frequentes
Preciso desinstalar a versão 32 bits antes de instalar para 64 bits?
Não. O instalador convive com a instalação anterior e complementa com os artefatos x64. É possível usar ambas as arquiteturas no mesmo ambiente de desenvolvimento.
As DLLs 32 bits continuam funcionando após a migração?
Sim. O instalador registra as DLLs 32 bits em SysWOW64 e as 64 bits em System32, permitindo que aplicações 32 bits e 64 bits coexistam na mesma máquina.
Uso o componente via OCX/ActiveX ou DLL. Preciso das DCUs x64?
Não. Quando o acesso é via COM, o projeto Delphi não depende de DCUs do componente — apenas da TLB (que acompanha a instalação). A DLL/OCX registrada em System32 é que executa em 64 bits.
Por que DCUs Win32 não funcionam em projetos Win64?
O Delphi exige que todos os pacotes e DCUs referenciados no projeto estejam compilados para a mesma arquitetura do projeto alvo. DCUs Win32 não são compatíveis com projetos Win64 — isso é uma restrição arquitetural do compilador, não do componente.
O projeto Win64 pode referenciar o pacote do componente no requires?
Não. O Delphi tentaria localizar um BPL Win64 do componente, que não existe. Isso gera o erro de incompatibilidade de arquitetura. Para Win64, remova a entrada do componente em requires e configure o Library Path Win64 com o caminho de Fontes_x64. A linkagem passa a ser estática — o código do componente é embutido diretamente no executável.
Preciso distribuir algum BPL junto com o executável Win64?
Não. Com linkagem estática, todo o código do componente já está dentro do .exe. Nenhum BPL adicional precisa ser distribuído junto com a aplicação.
O componente SPED Fiscal / eSocial / Reinf não distribui DCUs x64 compiladas. Como proceder?
O instalador copia os arquivos-fonte da TLB em Fontes_x64 e registra esse caminho no Library Path Win64 do Delphi. Ao compilar o projeto para Win64, o Delphi compila esses fontes automaticamente. Não é necessário nenhum passo adicional além dos descritos no procedimento acima.
Comentários
0 comentário
Artigo fechado para comentários.