Fórum Interbase #186054
03/10/2003
0
Como fazer com que o interbase carrege na memória as fnções que estou utilizando em minha base de dados. carregar a biblioteda DLL - UDF??
grato,
Rafael
grato,
Rafael
Biscoitorfa
Curtir tópico
+ 0
Responder
Posts
03/10/2003
Fava
Questões sobre alocação de memória
Se voce possui o IB 5.1 ou menor, digite a seguinte declaração na seção interface da sua unit :
function malloc(Bytes: Integer): Pointer; cdecl; external ´msvcrt.dll´;
Se voce usa o InterBase 5.5 ou superior, então voce não precisa desse código. Ao invés disso, tenha certeza que o arquivo ib_util.pas está no path do compilador, e que o arquivo ib_util.dll está no path real do sistema operacional.
O melhor modo de se fazer isso é colocar
c:\Program Files\InterBase Corp\InterBase\include
no library path do Delphi. Depois copie
c:\Program Files\InterBase Corp\InterBase\lib\ib_util.dll
para o diretório system do Windows (tipicamente c:\windows\system). Então coloque o ib_util.pas na cláusula uses da seção interface da sua unit.
uses
...,
ib_util;
Mas porque tantos detalhes estranhos para tratar a alocação de memória ? Porque eu não posso simplesmente alocar a memória usando AllocMem ou coisa parecida ? A resposta mais simples é : Voce não pode, portanto não pergunte ! A resposta mais longa seria que os diferentes compiladores usam seus próprios métodos e algorítimos para gerenciar a alocação de memória que foi lhe dada pelo sistema operacional. Por exemplo, o MSVC gerencia a memória de maneira diferente do Delphi. Adivinhe ? O IB é compilado com o MSVC. Nas versões anteriores à 5.5, era necessário que voce linkasse diretamente a DLL de runtime do MS VC, e nas versões superiores à 5.5, o IB fornece uma chamada para que isso seja feito. Bom, vamos prosseguir com a construção da nossa funçã
trecho extraido do artigo http://www.firebase.com.br/cgi-bin/firebase.cgi/artigo?ID=236
Se voce possui o IB 5.1 ou menor, digite a seguinte declaração na seção interface da sua unit :
function malloc(Bytes: Integer): Pointer; cdecl; external ´msvcrt.dll´;
Se voce usa o InterBase 5.5 ou superior, então voce não precisa desse código. Ao invés disso, tenha certeza que o arquivo ib_util.pas está no path do compilador, e que o arquivo ib_util.dll está no path real do sistema operacional.
O melhor modo de se fazer isso é colocar
c:\Program Files\InterBase Corp\InterBase\include
no library path do Delphi. Depois copie
c:\Program Files\InterBase Corp\InterBase\lib\ib_util.dll
para o diretório system do Windows (tipicamente c:\windows\system). Então coloque o ib_util.pas na cláusula uses da seção interface da sua unit.
uses
...,
ib_util;
Mas porque tantos detalhes estranhos para tratar a alocação de memória ? Porque eu não posso simplesmente alocar a memória usando AllocMem ou coisa parecida ? A resposta mais simples é : Voce não pode, portanto não pergunte ! A resposta mais longa seria que os diferentes compiladores usam seus próprios métodos e algorítimos para gerenciar a alocação de memória que foi lhe dada pelo sistema operacional. Por exemplo, o MSVC gerencia a memória de maneira diferente do Delphi. Adivinhe ? O IB é compilado com o MSVC. Nas versões anteriores à 5.5, era necessário que voce linkasse diretamente a DLL de runtime do MS VC, e nas versões superiores à 5.5, o IB fornece uma chamada para que isso seja feito. Bom, vamos prosseguir com a construção da nossa funçã
trecho extraido do artigo http://www.firebase.com.br/cgi-bin/firebase.cgi/artigo?ID=236
Responder
Gostei + 0
03/10/2003
Fava
o de manipulação de strings!
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)