#include "astrodll.h"
#include <stdio.h>
#include <math.h>
//-------------------------------------------------
Тут код не мой,взят из проекта OpenUnivers
определяются функции вида
void PlanetPos(double,double*,double*,double*)
где вместо Planet - названия планет...
Дальше функции которые я сам приписал и которые собственно экспортируются
//-------------------------------------------------
extern "C"
{
__declspec(dllexport) double retXcoord(int planet,double JD)
{
double lon=0.0;
double lat=0.0;
double rad=0.0;
switch (planet)
{
case 1:
{MercuryPos(JD,&lon,&lat,&rad);return rad;}
case 2:
{VenusPos(JD,&lon,&lat,&rad);return rad;}
case 3:
{EarthPos(JD,&lon,&lat,&rad);return rad;}
case 4:
{MarsPos(JD,&lon,&lat,&rad);return rad;}
case 5:
{JupiterPos(JD,&lon,&lat,&rad);return rad;}
case 6:
{SaturnPos(JD,&lon,&lat,&rad);return rad;}
case 7:
{UranusPos(JD,&lon,&lat,&rad);return rad;}
case 8:
{NeptunePos(JD,&lon,&lat,&rad);return rad;}
//case 9:
//{PlutoPos(JD,&lon,&lat,&rad);return rad;}
}return 0;}
__declspec(dllexport) double retLong(int planet,double JD)
{
double lon=0.0;
double lat=0.0;
double rad=0.0;
switch (planet)
{
case 1:
{MercuryPos(JD,&lon,&lat,&rad);return lon;}
case 2:
{VenusPos(JD,&lon,&lat,&rad);return lon;}
case 3:
{EarthPos(JD,&lon,&lat,&rad);return lon;}
case 4:
{MarsPos(JD,&lon,&lat,&rad);return lon;}
case 5:
{JupiterPos(JD,&lon,&lat,&rad);return lon;}
case 6:
{SaturnPos(JD,&lon,&lat,&rad);return lon;}
case 7:
{UranusPos(JD,&lon,&lat,&rad);return lon;}
case 8:
{NeptunePos(JD,&lon,&lat,&rad);return lon;}
//case 9:
//{PlutoPos(JD,&lon,&lat,&rad);return lon;}
}return 0;}
__declspec(dllexport) double retLat(int planet,double JD)
{
double lon=0.0;
double lat=0.0;
double rad=0.0;
switch (planet)
{
case 1:
{MercuryPos(JD,&lon,&lat,&rad);return lat;}
case 2:
{VenusPos(JD,&lon,&lat,&rad);return lat;}
case 3:
{EarthPos(JD,&lon,&lat,&rad);return lat;}
case 4:
{MarsPos(JD,&lon,&lat,&rad);return lat;}
case 5:
{JupiterPos(JD,&lon,&lat,&rad);return lat;}
case 6:
{SaturnPos(JD,&lon,&lat,&rad);return lat;}
case 7:
{UranusPos(JD,&lon,&lat,&rad);return lat;}
case 8:
{NeptunePos(JD,&lon,&lat,&rad);return lat;}
//case 9:
//{PlutoPos(JD,&lon,&lat,&rad);return lat;}
}return 0;}
}
Как правильно писать DLL
Код:
Вот эти функции я и вызываю из другой программы(на BlitzBasic),но они возвращают в цикле одни и теже значения...Не могу понять почему...
Правильно ли я оформил функции на экспорт?
Проблема была в несоответствии типов,нету в бейсике double.Бейсик со своими тремя типами взбесил...