GARANTIR DESCONTO

Fórum gds32.dll e fbclient.dll na pasta System #48054

15/11/2004

0

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:


Aersoftware

Aersoftware

Responder

Posts

15/11/2004

Gandalf.nho

É 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).


Responder

Gostei + 0

15/11/2004

Vinicius2k

...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+


Responder

Gostei + 0

15/11/2004

Aersoftware

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:


Responder

Gostei + 0

15/11/2004

Vinicius2k

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+


Responder

Gostei + 0

16/11/2004

Aersoftware

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:


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar