Local independente "atof"?

Estou analisando as entradas de status do GPS em sentenças NMEA fixas, em que a parte fracionária dos minutos geográficos vem sempre após o período. No entanto, em sistemas em que locale define vírgula como separador decimal,de repente função ignora período e fração inteira.

Qual é o melhor método para lidar com esse problema? String longa / latitude armazenada na matriz de caracteres, se for importante.

Exemplo de código:

m_longitude = atof((char *)pField); 

Onde

pField[] = "01000.3897"; 

Projeto multiplataforma, compilado para Windows XP e CE.

Comentário à solução:

A resposta aceita é mais elegante, masisto resposta (e comentário) também vale a pena conhecer como uma solução rápida