Beruflich Dokumente
Kultur Dokumente
19/09/16 11:16 AM
Buscar
PERGUNTAS RECENTES
TODAS AS PERGUNTAS
TAGS
MEUS TPICOS
PESQUISAR
Responder Citar
Mais posts
Ermindo - 07 mar 2006
Ol,
vc poderia fazer o seguinte:
Na DLL, poderia criar uma preocedure tipo:
Procedure Proc;stdcall;
begin
Form1:=Tform1.create(application);
Form1.showmodal;
Form1.release;
end;
CDIGOS freelibrary(HD);
FRUM
JOBS
ASSINE MVP
Baixe o APP
Login
end;
end;
http://www.devmedia.com.br/forum/abrir-form-dll-usando-loadlibrary/315166
Pgina 1 de 5
19/09/16 11:16 AM
[]s
Ermindo Lopes
0 |0
Responder Citar
O cdigo acima funciona, mas qdo a Dll que est na var THandle liverada:
FreeLibrary(HD);
O aplicativo gera um erro, run-time error, ento, se eu remover essa linha, funciona perfeitamente!!!!!
Porque ser?
abrao
0 |0
Responder Citar
pasei pelo mesmo problema e descobri q precisa declarar o Sharemem como primeira clausula do Uses no *.DPR e naum no Form da
aplicao principal.
[]1 Ermindo
0 |0
Responder Citar
passei pelo mesmo problema e descobri q precisa declarar o Sharemem como primeira clausula do Uses no *.DPR e naum no Form da
aplicao principal.
[] Ermindo
0 |0
Responder Citar
passei pelo mesmo problema e descobri q precisa declarar o Sharemem como primeira clausula do Uses no *.DPR e naum no Form da
aplicao principal.
[] Ermindo
0 |0
Responder Citar
http://www.devmedia.com.br/forum/abrir-form-dll-usando-loadlibrary/315166
Pgina 2 de 5
19/09/16 11:16 AM
citao:
passei pelo mesmo problema e descobri q precisa declarar o Sharemem como primeira clausula do Uses no *.DPR e naum no
Form da aplicao principal.
[] Ermindo
Responder Citar
O problema continua,
ja coloquei o ShareMem, e MidasLib tanto do DPR da dll como na aplicao .exe que vai chamar a dll mas ainda acontece erro de
violao qdo fecho o form/dll e uso o FreeLibrary.
falow+
0 |0
Responder Citar
O problema continua,
ja coloquei o ShareMem, e MidasLib tanto do DPR da dll como na aplicao .exe que vai chamar a dll mas ainda acontece erro de
violao qdo fecho o form/dll e uso o FreeLibrary.
falow+
0 |0
Responder Citar
citao:
O problema continua,
ja coloquei o ShareMem, e MidasLib tanto do DPR da dll como na aplicao .exe que vai chamar a dll mas ainda acontece erro
de violao qdo fecho o form/dll e uso o FreeLibrary.
falow+
Enio, vc poderia postar aqui os cabealhos de sua DLL e de seu DPR do projeto, bem como a chamada dinmica a sua DLL?Valew!!
0 |0
Responder Citar
http://www.devmedia.com.br/forum/abrir-form-dll-usando-loadlibrary/315166
Pgina 3 de 5
19/09/16 11:16 AM
uses
((ShareMem,
((MidasLib,
((SysUtils,
((Classes,
((Forms,
((U_Funcoes(in(..\U_Funcoes.pas,
((U_Mensagem(in(..\U_Mensagem.pas({F_Mensagem},
(
.........
(
procedure(GradeUsuarios;(stdcall;
begin
((Application.CreateForm(TF_GradeUsuarios,F_GradeUsuarios);
((F_GradeUsuarios.ShowModal;
((F_GradeUsuarios.Release;
end;
(
exports
((GradeUsuarios;
0 |0
Responder Citar
citao:
Colega, pode ser que eu esteja enganado, mas tente criar seu form assim:
procedure GradeUsuarios; stdcall;
begin
F_GradeUsuarios := TF_GradeUsuarios.Create( Nil );
F_GradeUsuarios.ShowModal;
F_GradeUsuarios.Release;
end;
Da forma como est descrita acima, quando o form fechado ele automaticamente liberado da memria, no ficando dependente da
liberao da aplicao. Pq ao q parece, ao liberar a DLL com freelibrary(HD); ainda existe em memria um form q foi criado dentro da
DLL.
http://www.devmedia.com.br/forum/abrir-form-dll-usando-loadlibrary/315166
Pgina 4 de 5
19/09/16 11:16 AM
Acho q seria isso, algum poderia corrigir isso por favor, hehe :D
0 |0
Responder Citar
Colega, pode ser que eu esteja enganado, mas tente criar seu form assim:
procedure GradeUsuarios; stdcall;
begin
F_GradeUsuarios := TF_GradeUsuarios.Create( Nil );
F_GradeUsuarios.ShowModal;
F_GradeUsuarios.Release;
end;
0 |0
Responder Citar
Voc precisa estar logado para tirar sua dvida. Clique aqui para efetuar seu login.
DevMedia
Publique | Assine | Fale conosco
Curtir Pgina
http://www.devmedia.com.br/forum/abrir-form-dll-usando-loadlibrary/315166
Pgina 5 de 5