Fórum gds32.dll e fbclient.dll na pasta System #48054
15/11/2004
0
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
Curtir tópico
+ 0Posts
15/11/2004
Gandalf.nho
Gostei + 0
15/11/2004
Vinicius2k
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
15/11/2004
Aersoftware
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
15/11/2004
Vinicius2k
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.
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
16/11/2004
Aersoftware
Allan Elias Ramos :wink:
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)