You should go to
http://sun.hasenbraten.de/vbcc/ and open a bug report.
Nevertheless I would use one of these:
long atol (char *s)
{
long i = 0;
sscanf (s,"%ld",&i);
return (i);
}
long atol (char *s)
{
long i = 0;
while (*s >= '0' && *s <= '9')
{
i = (i * 10) + (*s - '0');
s ++;
}
return (i);
}