ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

[DCC Error] Unit1.pas(47): E2029 '(' expected but ':=' found

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
Kirk_guitar
Aprendiz
Aprendiz


Registrado: Sábado, 24 de Junho de 2006
Mensagens: 105
Localização: Belo Horizonte

MensagemEnviada: Ter Nov 07, 2017 11:17 am    Assunto: [DCC Error] Unit1.pas(47): E2029 '(' expected but ':=' found Responder com Citação

Bom dia pessoal, eu estou com um erro que não estou conseguindo entender:

Eu peguei um código de um site para carregar uma dll dinamicamente no meu sistema. Segundo os comentários de quem usou o código, funciona perfeitamente. Mas no meu caso da esse erro que coloquei no titulo.

A linha onde dá este erro é essa aqui.
Código:

@DescompactaGZip := GetProcAddress(H, 'DescompactaGZip');


Vou colocar abaixo todo o código da unit para vocês verem:
Código:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    mmLog: TMemo;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  type
   DescompactaGZip = function(zip :AnsiString) :AnsiString;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var s :AnsiString;
    H :THandle;
begin
   s := 'H4sIAAAAAAAEAIWS2W6DMBBFfwXxDraBQIomlrKQNmkhC'+
                    'UFdHglxgiWWCNwsf1+ztFWkSvXLXI/O3BmPDBWrgzlTrnlW'+
                    '1O613o/UVIiTi9DlctEvpl5WR2RgTNC7/7JNUpbH6g/M/4c1Xt'+
                    'QiLhKmKmdW1XE5UomOSe9xV38qKxFnB14ncabz4qDvKlQcmEohS'+
                    'eWIlBDiEGmO7QfTGuJWDQZN6PSQkG9hAepqYBqsl/S+BlCbhGtQ'+
                    '5oxuV/44VBbBbLryZ57iRYuN4imT1UR5iWZjQB0FC4/i/gxsx7YcQ'+
                    'DIF+9TLOTUwcTSCNcOKiOWajmsYGjZcjAF1AIhTMKcEUBvh3FxsrDd'+
                    'Ao2HPj69xRqNbGM557VfL6dPy0Smd58+P8K24hefNSFp1kOwZsmQnyj'+
                    '/aWr9tewaKdVUKajbLk683hxYxbTlIl4Zky0W7W7mwXgLqvgT9AiKGZhUbAgAA';
   H := LoadLibrary('Project1.dll');
    if H <> 0 then
    begin
      showmessage('carregou a dll.');
      @DescompactaGZip := GetProcAddress(H, 'DescompactaGZip');
      if @DescompactaGZip <> nil then
      begin
          s := DescompactaGZip(s);
          mmLog.Lines.Text := s
      end;
      FreeLibrary(Handle);
  end;
//   s := DescompactaGZip(s);

end;

end.


Eu acredito que seja uma coisa simples que estou errando, mas não sei o que é.
Estou usando o Delphi 2007. A dll foi criada por mim no Delphi XE2.
Ah. Também da o mesmo erro na linha abaixo, do if, dizendo que tem que ser um parênteses no lugar do "<>".
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Kirk_guitar
Aprendiz
Aprendiz


Registrado: Sábado, 24 de Junho de 2006
Mensagens: 105
Localização: Belo Horizonte

MensagemEnviada: Ter Nov 07, 2017 1:36 pm    Assunto: Responder com Citação

Pessoal, consegui resolver com o seguinte código:

Código:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    mmLog: TMemo;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  type
   TDescompactaGZip = function(zip :AnsiString) :AnsiString;
   const
    DescompactaGZip :TDescompactaGZIp = nil;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var s :AnsiString;
    H :THandle;
begin
   s := 'H4sIAAAAAAAEAIWS2W6DMBBFfwXxDraBQIomlrKQNmkhC'+
                    'UFdHglxgiWWCNwsf1+ztFWkSvXLXI/O3BmPDBWrgzlTrnlW'+
                    '1O613o/UVIiTi9DlctEvpl5WR2RgTNC7/7JNUpbH6g/M/4c1Xt'+
                    'QiLhKmKmdW1XE5UomOSe9xV38qKxFnB14ncabz4qDvKlQcmEohS'+
                    'eWIlBDiEGmO7QfTGuJWDQZN6PSQkG9hAepqYBqsl/S+BlCbhGtQ'+
                    '5oxuV/44VBbBbLryZ57iRYuN4imT1UR5iWZjQB0FC4/i/gxsx7YcQ'+
                    'DIF+9TLOTUwcTSCNcOKiOWajmsYGjZcjAF1AIhTMKcEUBvh3FxsrDd'+
                    'Ao2HPj69xRqNbGM557VfL6dPy0Smd58+P8K24hefNSFp1kOwZsmQnyj'+
                    '/aWr9tewaKdVUKajbLk683hxYxbTlIl4Zky0W7W7mwXgLqvgT9AiKGZhUbAgAA';
   H := LoadLibrary('Project1.dll');
    if H <> 0 then
    begin
      showmessage('carregou a dll.');
      @DescompactaGZip := GetProcAddress(H, 'DescompactaGZip');
      if @DescompactaGZip <> nil then
      begin
          s := DescompactaGZip(s);
          mmLog.Lines.Text := s
      end;
      FreeLibrary(Handle);
  end;
end;

end.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB