Как подключить С-процедуру

Тема в разделе "Delphi - Компоненты", создана пользователем semantics, 18 фев 2009.

  1. semantics

    semantics Гость

    Нужно реализовать прямое обращение из DELPHI к объектному модулю на С. Что-то неправильно делаю со стыковкой интерфейсов. Подскажите кто знает.

    Текст обращения к модулю Text1.obj:

    unit Unit11;
    {$L Text1.obj}
    interface

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

    type
    TForm1 = class(TForm)
    ed1: TEdit;
    ed2: TEdit;
    ed3: TEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);

    private
    { Private declarations }
    public
    { Public declarations }
    end;
    function proc1(x1,x2:integer):integer; cdecl; stdcall; external;

    var
    Form1: TForm1;

    implementation

    {$R *.dfm}

    procedure TForm1.Button1Click(Sender: TObject);
    var x3:integer;
    begin
    x3:=proc1(12,13);
    end;

    end.

    При компиляции выдает сообщение

    [Error] Unit1.pas(38): Bad object file format: 'c:\program files\borland\delphi6\Bin\Text1.obj'
    [Error] Unit1.pas(22): Unsatisfied forward or external declaration: 'proc1'
    [Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'

    Текст "С" процедуры:

    int proc1(int x1,int x2)
    {int x3;
    x3= x1*x2;
    return x3;}
     
Загрузка...

Поделиться этой страницей