Fórum Erro com Dll e Sharemem. #234080
24/05/2004
0
Galera, boa tarde,
criei uma dll q exporta uma procedure chamada:
Consulta (Data:TclientDataset;Nome:string;Campos :Array of string);
Sei q é necessário colocar a unit Sharemem, na primeira posição da clausula
Uses, tanto da Dll como do Projeto q vai executá-la.
A questão é a seguinte:
Se eu colocar a Sharemem dentro do projeto, como o especificado, ao fechar o
form principal da app, ele dá esvaziamento de pilha, logo após o
application.termindate.
Se eu tirar o Sharemem do projeto, tudo funciona ok, mas a procedure Consulta
ao sair gera um erro de acesso a borlndmm.dll
Como posso resolver este problema?
Outra dúvida, Eu poderia passar o param Nome como Pchar e dentro da dll
manipulá-lo como string, normalmente? Pois ele é apenas
o caption da Janela que a procedure consulta abre.
Mais uma para terminar,
se esta procedure em questão só recebesse params do tipo integer, dentro da
procedure eu poderia declarar variavies do tipo string, sem ter q incluir a
Sharemem no uses? Ou toda vez q eu for usar uma string dentro de uma dll,
mesmo q seja para uso interno da dll, eu tenho q adicionar o Sharemem?
Ex:
procedure teste(opc:integer);
var
i,x:integer;
S:string; //apenas para uso interno da procedure, não vai retornar valor
nenhum;
begin
for i:= 0 to opc do
begin
x:=x*2;
end;
if x = 0 then S:=´Chave 0´ else S:=´Chave 2´
if S = ´Chave 0´ then
begin
///////
end;
end;
Obrigado pela atenção.
criei uma dll q exporta uma procedure chamada:
Consulta (Data:TclientDataset;Nome:string;Campos :Array of string);
Sei q é necessário colocar a unit Sharemem, na primeira posição da clausula
Uses, tanto da Dll como do Projeto q vai executá-la.
A questão é a seguinte:
Se eu colocar a Sharemem dentro do projeto, como o especificado, ao fechar o
form principal da app, ele dá esvaziamento de pilha, logo após o
application.termindate.
Se eu tirar o Sharemem do projeto, tudo funciona ok, mas a procedure Consulta
ao sair gera um erro de acesso a borlndmm.dll
Como posso resolver este problema?
Outra dúvida, Eu poderia passar o param Nome como Pchar e dentro da dll
manipulá-lo como string, normalmente? Pois ele é apenas
o caption da Janela que a procedure consulta abre.
Mais uma para terminar,
se esta procedure em questão só recebesse params do tipo integer, dentro da
procedure eu poderia declarar variavies do tipo string, sem ter q incluir a
Sharemem no uses? Ou toda vez q eu for usar uma string dentro de uma dll,
mesmo q seja para uso interno da dll, eu tenho q adicionar o Sharemem?
Ex:
procedure teste(opc:integer);
var
i,x:integer;
S:string; //apenas para uso interno da procedure, não vai retornar valor
nenhum;
begin
for i:= 0 to opc do
begin
x:=x*2;
end;
if x = 0 then S:=´Chave 0´ else S:=´Chave 2´
if S = ´Chave 0´ then
begin
///////
end;
end;
Obrigado pela atenção.
Aledeol
Curtir tópico
+ 0
Responder
Posts
10/02/2016
Flex Ltda
Olá Fera!
Como vai? Tudo certo? Depois do carnaval a ressaca de voltar aos códigos...és la vida loca! hehehe....
Então estou criando uma DLL em Delphi que será chamada por um aplicativo feito em XBase e tô apanhando mais que cavalo de bandido como dizem hehehe...
Depois da descontração, tentei de várias formas fazer o aplicativo chamar a minha DLL mas sem exito.
Passar o caminho de um arquivo INI por parâmetro que a DLL irá tratar não deu certo tentei com String, PChar, PAnsiChar...nada funcionou então acabamos usando variáveis de ambiente para integrar os códigos.
Esse não é mais problema já resolvi de outra forma, meu problema ocorre ao sair da DLL dá um erro que não consigo identificar e dizer não pode ser isso ou aquilo.
Já tentei colocar Sharmem e não funcionou, ou então copiar a BORLANDMM.DLL para a mesma pasta da DLL também não funcionou.
Queria uma idéia sua, já passou por uma situação parecida como mensionou acima.
PODE ME AJUDAR ?
Como vai? Tudo certo? Depois do carnaval a ressaca de voltar aos códigos...és la vida loca! hehehe....
Então estou criando uma DLL em Delphi que será chamada por um aplicativo feito em XBase e tô apanhando mais que cavalo de bandido como dizem hehehe...
Depois da descontração, tentei de várias formas fazer o aplicativo chamar a minha DLL mas sem exito.
Passar o caminho de um arquivo INI por parâmetro que a DLL irá tratar não deu certo tentei com String, PChar, PAnsiChar...nada funcionou então acabamos usando variáveis de ambiente para integrar os códigos.
Esse não é mais problema já resolvi de outra forma, meu problema ocorre ao sair da DLL dá um erro que não consigo identificar e dizer não pode ser isso ou aquilo.
Já tentei colocar Sharmem e não funcionou, ou então copiar a BORLANDMM.DLL para a mesma pasta da DLL também não funcionou.
Queria uma idéia sua, já passou por uma situação parecida como mensionou acima.
PODE ME AJUDAR ?
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)