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:
http://rvelthuis.de/articles/articles-cobjs.html
(09-01-2018, Saat: 20:38)csunguray Adlı Kullanıcıdan Alıntı: [ -> ]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:
http://rvelthuis.de/articles/articles-cobjs.html

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

http://www.delphican.com/c-c-nesnelerine...?pid=13266

Buradan tekrar Savaş Beye teşekkürlerimi sunuyorum.
(10-01-2018, Saat: 00:39)uparlayan Adlı Kullanıcıdan Alıntı: [ -> ]Çözüm ve sürpriz aşağıdaki linkte ye alıyor;

http://www.delphican.com/c-c-nesnelerine...?pid=13266

Buradan tekrar Savaş Beye 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ı: [ -> ]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:
http://rvelthuis.de/articles/articles-cobjs.html

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.