Announcement

Collapse
No announcement yet.

C Objektdateien in Delphi aufrufen???

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • C Objektdateien in Delphi aufrufen???

    Hallo an alle!!!
    Ich habe ein Problem. Ich bin eingentlich C Programmierer. Muss aber jetzt in Delphi einsteigen. Und ich habe sehr viele gute C programme die ich weiter benutzen will, aber mit Delphi. Die Frage ist geht es oder nicht. Mir wurde gesagt, dass man die Funktionen aus eine C Objektdatei benutzen kann. Irgendwie funktioniert es bei mir nicht.
    Ich habe folgendes versucht:

    unit prog;

    interface

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

    type
    TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;

    private
    { Private-Deklarationen }
    public
    { Public-Deklarationen }

    end;

    var
    Form1: TForm1;
    type MEMLOCK = THandle;
    type PMEMLOCK = ^THandle;

    implementation

    {$R *.DFM}
    {$L memlock.OBJ}
    {$L memmap.OBJ}

    procedure memLockDestroy(s:MEMLOCK);external;
    function memLockOpen(key:Integer; s :PMEMLOCK):Integer; external ;

    end.

    Die funktionen memLockDestroy und memLockOpen sind in C so:
    int memLockOpen( int key, MEMLOCK *s)
    {
    #ifdef _WIN32
    char semname[30];
    sprintf( semname, "sem%08x", key);
    *s = OpenSemaphore( SEMAPHORE_ALL_ACCESS, FALSE, semname);
    return (*s != NULL)? 0 : -1;
    #else
    *s = semget( key, 1, 0);
    return (*s >= 0)? 0 : -1;
    #endif

    und:

    void memLockDestroy( MEMLOCK s)
    {
    #ifdef _WIN32
    CloseHandle( s);
    #else
    semctl( s, 0, IPC_RMID);
    #endif
    }

    WAS MACHE ICH FALSCH????? WEIß DA JEMAND RAT????
Working...
X