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!