Ver Mensaje Individual
  #13  
Antiguo 20-01-2020
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Reputación: 27
delphi.com.ar Va por buen camino
Acá te dejo un ejemplo hecho a medida:

Archivo funcs.cpp (todo junto, deberías pasar la definición al header)
Código:
#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:
Código:
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.

Última edición por delphi.com.ar fecha: 21-01-2020 a las 16:14:15.
Responder Con Cita