gds32.dll e fbclient.dll na pasta System
Pessoal, tudo tranquilo? Espero q sim. Essa dúvida surgiu quando tava tentando criar um instalador de teste pro meu programa com o InnoSetup. Ele deu um erro nos arquivos gds32.dll e fbclient.dll porque eles se encontravam na pasta System do Windows e coisa e tal. Não entendi direito o erro, mas quando retirei esses arquivos, o instalador foi até o fim.
A dúvida é o seguinte, quando instalei o FB, segui os passos da Clube Delphi 50. Ali dizia q o fbclient.dll devia ser instalado no próprio diretório dos arquivos do FB e q o programa deveria localizar essa dll no mesmo. E também pra fazer uma ´cópia´ do gds32.ddl pro system do windows. Bom, o meu Firebird não conseguia conectar no programa em Delphi até q eu coloquei o fbclient.dll e o gds32.dll pra pasta System32 do Windows.. pq isso? Pq essa distinção das pastas System e System32? E no caso, o InnoSetup só tem a opção pra gravar esse arquivos..
Allan Elias Ramos :wink:
A dúvida é o seguinte, quando instalei o FB, segui os passos da Clube Delphi 50. Ali dizia q o fbclient.dll devia ser instalado no próprio diretório dos arquivos do FB e q o programa deveria localizar essa dll no mesmo. E também pra fazer uma ´cópia´ do gds32.ddl pro system do windows. Bom, o meu Firebird não conseguia conectar no programa em Delphi até q eu coloquei o fbclient.dll e o gds32.dll pra pasta System32 do Windows.. pq isso? Pq essa distinção das pastas System e System32? E no caso, o InnoSetup só tem a opção pra gravar esse arquivos..
Allan Elias Ramos :wink:
Aersoftware
Curtidas 0
Respostas
Gandalf.nho
15/11/2004
É que a pasta de sistema varia conforme o Windows, no 95 e 98 é a pasta System, no XP e 2000 é a System32 (no NT e ME não me lembro).
GOSTEI 0
Vinicius2k
15/11/2004
...no NT e ME não me lembro
No NT é ´System32´ e no ME é ´System´.
Allan,
Só para vc entender... como vc estah usando o FB 1.5, as DLLs gds32.dll e fbclient.dll são exatamente idênticas, só mudam o nome.
Precisar ou não da gds32.dll depende da camada de acesso que vc está utilizando, por exemplo: se for IBX vc precisa dela pq, a não ser q vc altere o código fonte do componente, é sempre a gds32.dll q ele vai procurar... já com dbExpress, vc pode informar no componente de conexão o nome da DLL cliente, então, se vc informar fbclient.dll, pode dispensar a instalação da gds32.dll.
A diretiva do InnoSetup vai sempre apontar para o local correto, independentemente das variações de versão do Windows, e é sempre lá que vc deve instalar as DLLs. Mesmo sendo cópias, já que a instalação padrão do FB instala a fbclient.dll no ´Firebird´\bin.
Na arquitetura NT (NT, 2000, XP e 2003) a pasta de sistema é sempre a primeira a vai ser pesquisada para carregamento de DLLs, então, mesmo que vc instale as DLLs junto do executável da aplicação é a que vai ser pesquisada inicialmente, apenas se não existir lá é que o diretório da aplicação vai ser considerado.
É importante observar que, como ele pesquisa primeiro na , se lá existir uma versão anterior destas DLLs, é esta versão que a aplicação vai tentar utilizar, e isso, com certeza, causará erros.
Já o diretório do FB nunca será pesquisado, a não ser que exista o caminho para a ele na variável de ambiente ´PATH´.
Creio que pode-se dizer que a regra é :
- fbclient.dll no ´bin´ do Firebird.
- fbclient.dll no do Windows.
- gds32.dll no do Windows (se for necessária de acordo com a camada de acesso utilizada).
Espero ter ajudado...
T+
GOSTEI 0
Aersoftware
15/11/2004
Hmmm.. entendi sim Vinicius, valeu.. A minha dúvida era pq, quando instalei o FB pela primeira vez e fiz um teste de conexão, ele deu erro, justamente pq não copiei a fbclient.dll pra pasta System32.. e no passo-a-passo da Clube Delphi 50 q me baseei, dizia q era melhor não instalar a dll no System32 mesmo..
No caso em questão, eu preciso configurar alguma coisa no dbexpress pra ele procurar o fbclient.dll no diretório q foi instalado o Firebird ou ele procura automáticamente caso não ache no System32?
Estou usando o Windows XP, mas a aplicação pode ser instalada no 98.. se eu botar pra instalar no com o InnoSetup ele instala no System se for 98 e no System32 se for no XP certo? é pq o XP também tem uma pasta chamada System..
Allan Elias Ramos :wink:
No caso em questão, eu preciso configurar alguma coisa no dbexpress pra ele procurar o fbclient.dll no diretório q foi instalado o Firebird ou ele procura automáticamente caso não ache no System32?
Estou usando o Windows XP, mas a aplicação pode ser instalada no 98.. se eu botar pra instalar no com o InnoSetup ele instala no System se for 98 e no System32 se for no XP certo? é pq o XP também tem uma pasta chamada System..
Allan Elias Ramos :wink:
GOSTEI 0
Vinicius2k
15/11/2004
No caso em questão, eu preciso configurar alguma coisa no dbexpress pra ele procurar o fbclient.dll no diretório q foi instalado o Firebird ou ele procura automáticamente caso não ache no System32?
Não é bem por aí... Ele vai SEMPRE procurar no e depois no diretório da aplicação, caso não encontre, mas NUNCA no diretório do FB, a não ser que vc defina o diretório do FB na variável de ambiente PATH. Portanto, instale sempre no ou no diretório da aplicação.
Se vc está embarcando a instalação do FB no instalador da aplicação, vc deverá instalar a DLL junto com o FB(\bin), apenas para manter o padrão da instalação do FB, mas a cópia que a sua aplicação vai usar deve estar no (preferencialmente), ou junto do .exe da aplicação.
Estou usando o Windows XP, mas a aplicação pode ser instalada no 98.. se eu botar pra instalar no com o InnoSetup ele instala no System se for 98 e no System32 se for no XP certo?
Exato.
A diretiva indica a pasta de sistema, não importando qual Windows... todos sob a plataforma NT (NT, 2000, XP e 2003) esta pasta é \SYSTEM32 (mesmo vc tendo uma \SYSTEM em um NT) e nos Windows 9X e ME a pasta é \SYSTEM.
A instalação na pasta correta ficará a cargo do setup gerado pelo InnoSetup. Não precisa se preocupar com isto...
T+
GOSTEI 0
Aersoftware
15/11/2004
Haaa bom.. agora sim.. troquei as bolas ali em cima achando q ele procurava na pasta do Firebird.. bom, por precuação, vou instalar essa dll no system e na pasta do executável.. valeu denovo Vinicius, abração..
Allan Elias Ramos :wink:
Allan Elias Ramos :wink:
GOSTEI 0