hallo ich kämpfe grad mit einem üblen problem rum...
Ich Aktualisiere grad eine Software von uns diese ist damals in VB3 geschrieben worden und hat ihre ganzen Funktionen in einer DLL. Der Quellcode der DLL liegt mir vor aber ich kann damit nix anfangen. Vll. ja ihr und könnt ihn iwie in VB6 Code umwandeln oder mir tipps geben.
Danke!
Die erste Funktion
static struct tm *comtime(long time)
{
int hpery;
int i;
int cumdays;
tm.tm_sec = (int)(time % 60);
time /= 60; /* Time in minutes */
tm.tm_min = (int)(time % 60);
time /= 60; /* Time in hours */
i = (int)(time / (1461L * 24L));
tm.tm_year = 70 + (i << 2);
cumdays = 1461 * i;
time %= 1461L * 24L;
for (;;)
{
hpery = 365 * 24;
if ((tm.tm_year & 3) == 0)
hpery += 24;
if (time < hpery)
break;
cumdays += hpery / 24;
tm.tm_year++;
time -= hpery;
}
// if (dst && daylight &&
// __isDST( time % 24, time / 24, 0, tm.tm_year-70 ))
// {
// time++;
// tm.tm_isdst = 1;
// }
// else
tm.tm_isdst = 0;
tm.tm_hour = (int)(time % 24);
time /= 24; /* Time in days */
tm.tm_yday = (int)time;
cumdays += (int)time + 4;
tm.tm_wday = cumdays % 7;
time++;
if ((tm.tm_year & 3) == 0)
{
if (time > 60)
time--;
else if (time == 60)
{
tm.tm_mon = 1;
tm.tm_mday = 29;
return(&tm);
}
}
for (tm.tm_mon = 0; Days[tm.tm_mon] < time; tm.tm_mon++)
time -= Days[tm.tm_mon];
tm.tm_mday = (int)time;
return(&tm);
}
int __export WINAPI DateLong2DateString(long t, char * Buffer, int BufSize)
{
struct tm *tm;
char buf[80];
tm = comtime(t);
sprintf(buf, "%02d.%02d.%04d,%02d:%02d:%02d",
tm->tm_mday,
tm->tm_mon + 1,
tm->tm_year + 1900,
tm->tm_hour,
tm->tm_min,
tm->tm_sec);
strncpy(Buffer, buf, BufSize - 1);
return 1;
} Und die 2 Funktion:
float __export WINAPI Strg2Flt(char * s)
{
int i;
int j;
float r;
char d[4];
for ( i = 0, j = 3; i < 4; i++, j--)
d = s[j];
_fmemcpy(&r, d, 4);
return r;
} |