Delphi Can

Orjinalini görmek için tıklayınız: C Nesnelerini Delphi'de kullanmak
Şu anda (Arşiv) modunu görüntülemektesiniz. Orjinal Sürümü Görüntüle internal link
Merhaba, soru şu; "C'de  hazırlanmış bir object dosyasından fonksiyon ve prosedürleri Delphi'de nasıl kullanabiliriz?"

Aynı soruyu şu şekilde de sormak mümkün; "C'deki bir rutini Delphi'den nasıl çağırırız?"

Örnekleyerek kısaca anlatan herkese 10'ar puan ve ufak bir sürpriz Smile
C# ve DLL'den bahsetmiyorum Wink
Acilen uyumam gerek. Özür dilerim hocam Smile
Bilen yok galibaSmile
Aşağıdaki sayfada ayrıntılı olarak anlatılmıştır.Eğer işinize yarayacaksa Türkçe'ye çevirebilirim.

Using C object files in Delphi:
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
(09-01-2018, Saat: 20:38)csunguray Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlAşağıdaki sayfada ayrıntılı olarak anlatılmıştır.Eğer işinize yarayacaksa Türkçe'ye çevirebilirim.

Using C object files in Delphi:
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol

Maalesef geç kaldınız üstadım Smile
Çözüm ve sürpriz aşağıdaki linkte ye alıyor;

Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol

Buradan tekrar Linkleri Görebilmeniz İçin Giriş yap veya Üye Ole teşekkürlerimi sunuyorum.
(10-01-2018, Saat: 00:39)uparlayan Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlÇözüm ve sürpriz aşağıdaki linkte ye alıyor;

Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol

Buradan tekrar Linkleri Görebilmeniz İçin Giriş yap veya Üye Ole teşekkürlerimi sunuyorum.

Rica ederim,emekleriniz için ben teşekkür ederim.
(09-01-2018, Saat: 20:38)csunguray Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlAşağıdaki sayfada ayrıntılı olarak anlatılmıştır.Eğer işinize yarayacaksa Türkçe'ye çevirebilirim.

Using C object files in Delphi:
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol

Kesinlikle katılıyorum.
Uyku tutmadı, ben bir örnek paylaşayım bariSmile

cprintf.c dosyası
#pragma once
#include<stdio.h>
#include<stdlib.h>
void __stdcall cprintf(char* format,char** argv,int argc)
{

int i=0;
int iesp;
__asm{
mov iesp,esp
}
for(i=argc-1;i>=0;i--)
{
char *item=argv[i];

__asm
{

push item
}
}
__asm
{
push format
call printf
mov esp,iesp
}


}

void __stdcall csystem(char * cmd){

system(cmd);


}

bcc32 -c cprintf.c komut satırıyla derliyoruz.

dprintf.dpr dosyası

program dprintf;

{$APPTYPE CONSOLE}

{$R *.res}
    {$L cprintf.obj}// derledğimiz object dosyasını linkere bildiriyoruz.
uses
 System.SysUtils;
Type
PPChar=^PAnsiChar;

procedure cprintf(format: PAnsiChar;argv: PPChar=nil;argc: integer=0);stdcall;external;
procedure csystem(cmd: PAnsiChar);stdcall;external;
function _printf(const Format: PChar): Integer; cdecl; varargs; external 'msvcrt.DLL' name 'printf' ;
function _system(const cmd: PChar): Integer; cdecl; external 'msvcrt.DLL' name 'system' ;

var
idizi: array [0..4] of integer=(1,2,5,9,13);
cdizi: array [0..2] of PAnsiChar=('Merhaba','Delphican','Forumu');

begin
cprintf('Merhaba C'#10);
cprintf('%d,%d,%d,%d,%d'#10,PPChar(@idizi[0]),5);
cprintf('%s %s %s'#10,@cdizi[0],3);
csystem('pause');
end.

Daha geniş açıklama zaten makalede var.