View Single Post
  #13  
Old 20/01/2020
delphi.com.ar's Avatar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Join Date: May 2003
Location: Buenos Aires, Argentina *
Posts: 5,964
Rep Power: 29
delphi.com.ar Va camino a la fama
Acá te dejo un ejemplo hecho a medida:

Archivo funcs.cpp (todo junto, deberías pasar la definición al header)
Code:
#define EXTERN_DLL_EXPORT extern "C" __declspec(dllexport)

EXTERN_DLL_EXPORT long __stdcall MdyToJulian(int mon, int day, int yea)
{
	long im, j;

	im = 12*((long)yea+4800)+(long)mon-3;
	j = (2*(im%12) + 7 + 365*im)/12;
	j += (long)day + im/48 - 32083;
	if (j > 2299171) /* Take care of dates in */
	j += im/4800 - im/1200 + 38; /* Gregorian calendar. */
	return j;
}
En ese código podes observar que se exporta como una función C, con la convención stdcall.

Para compilarlo bajé el compilador gratuito Embarcadero Free C++ compiler, y lo compilé utilizando:
Code:
bcc32c funcs.cpp -tD
Y el código Delphi:
Código Delphi [-]
function MdyToJulian(mon, day, yea : integer ): Longint; stdcall; external 'funcs.dll' name 'MdyToJulian';

...

procedure TForm1.FormCreate(Sender: TObject);
begin
  Caption := FloatToStr(MdyToJulian(1, 16, 2020));
end;

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.

Last edited by delphi.com.ar : 21/01/2020 at 16:14.
Reply With Quote