Dll Não Exibe Informações correta
Amigos, estou construindo uma dll para mostrar alguns relatórios, e estou tentando passar os parametros para ela, mas não consigo passar o parametro correro, o que deve esta ocorrendo;
Dll
Chamada
Já tentei de diversas maneiras, mas quando no showmessage não aparece uns caracteres estranhos ele aparece apenas um, alguem saberia dizer o que e
Dll
Procedure Relatorio(Count: PChar); cdecl; export; begin showmessage(Count^); if Dados=nil then Application.CreateForm(TDados, Dados); Application.CreateForm(TR1, R1); try R1.ShowModal; finally R1.Release; FreeAndNil(R1); end; end;
Chamada
Procedure Relatorio(Count: Pchar); External ´reportsf.dll´;
Relatorio(´TESTE´);
Já tentei de diversas maneiras, mas quando no showmessage não aparece uns caracteres estranhos ele aparece apenas um, alguem saberia dizer o que e
Sremulador
Curtidas 0
Respostas
Massuda
14/08/2007
Acho que você não precisa escrever ´Count^´, basta apenas Count.
Um ponto importante... a não ser que você esteja usando os packages padrão do Delphi tanto no seu programa como na DLL, o Application da DLL não será o mesmo do programa (não tenho certeza, mas acho que nem Application existe, é nil). Crie seus forms usando o construtor Create dos forms.
Um ponto importante... a não ser que você esteja usando os packages padrão do Delphi tanto no seu programa como na DLL, o Application da DLL não será o mesmo do programa (não tenho certeza, mas acho que nem Application existe, é nil). Crie seus forms usando o construtor Create dos forms.
GOSTEI 0
Sremulador
14/08/2007
Já tentei com o count^, porem não funcionou, já tentei de tudo, mudei várias vezes o fonte, mas nd, o que poderia ser...
GOSTEI 0
Sremulador
14/08/2007
Amigos, simplesmente mudei para double funcionou, com um pequeno problema, no campo conta, tenho que jogar as informações do documento e do documento o da conta pois não sei de que forma as informações ficam invertidas...
Function Relatorio(Conta, Tipo, Documento: double): Pchar; cdecl; export; begin if Dados=nil then Application.CreateForm(TDados, Dados); Application.CreateForm(TR1, R1); try R1.OpenQuery(Documento, Tipo, Conta, true); R1.Tag:= Round(Conta); finally R1.Release; FreeAndNil(R1); end; FreeAndNil(Dados); end;
GOSTEI 0
Massuda
14/08/2007
...não sei de que forma as informações ficam invertidas
remova o [b:8f6160f51e]cdecl[/b:8f6160f51e].GOSTEI 0