Ver Mensaje Individual
  #3  
Antiguo 01-02-2013
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Reputación: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
AnuardMichelen,

Cita:
Empezado por AnuardMichelen
Estoy compilando un sistema pero me aparece los siguientes errores: ...Unsatisfied forward or external declaration...
En Delphi el error anterior se refiere a funciones o procedimientos declarados en la sección de interface pero que no han sido definidos en la sección de implementation.

Revisa este código:
Código Delphi [-]
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  function F1(x1 : Integer) : Integer;
  Procedure P1(x1 : Integer);

var
  Form1: TForm1;

implementation

{$R *.dfm}

end.
El código anterior al ser compilado producirá los siguientes errores:

Cita:
[Error] Unit1.pas(17): Unsatisfied forward or external declaration: 'F1'

[Error] Unit1.pas(18): Unsatisfied forward or external declaration: 'P1'

[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
La razón es que la función F1 y el procedure P1 no han sido definidos en la sección de implementation.

El error anterior también ocurrirá si las rutinas están definidas externamente en un DLL el cual no ha sido declarado en la sección de interface,

Revisa este código:
Código Delphi [-]
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  function F1(x1 : Integer) : Integer; stdcall; external 'Lib1.dll'
  Procedure P1(x1 : Integer); stdcall; external 'Lib1.dll'

var
  Form1: TForm1;

implementation

{$R *.dfm}

end.
El código anterior compila sin errores dado que la función F1 y el procedure P1 están definidos externamente en el DLL Lib1.dll

En resumen: Es un problema de definición del código a ejecutar en una función o procedure, sin embargo como bien señalan Al González y Casimiro sería conveniente que publiques tu código para un mayor análisis del problema.

Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 01-02-2013 a las 11:41:43.
Responder Con Cita