GARANTIR DESCONTO

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.


Aledeol

Aledeol

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 ?
Responder

Gostei + 0

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

Aceitar