2012-04-20 12 views
5

Estoy tratando de leer un archivo de configuración .init en C++ que tenga el contenido.GetPrivateProfileInt- leyendo solo los valores predeterminados

[Ipaddress]

Ipaddress = 169.254.115.22

[ScanConfiguration]

Scanfrequency = 2,500

ScanResolution = 2,500

startAngle = 700000

StopAngle = 1100000

Hasta ahora, he utilizado este código para leer los datos. Mi proyecto es de conjunto de caracteres Unicode y, por lo tanto, utilicé L antes de los valores de cadena.

int iScanFreq =GetPrivateProfileInt(L"ScanConfiguration",L"Scanfrequency", 2500, L"filename.ini"); 
    int iScanRes =GetPrivateProfileInt(L"ScanConfiguration",L"ScanResolution", 2500, L"filename.ini"); 
    int iStartAngle =GetPrivateProfileInt(L"ScanConfiguration",L"StartAngle", -450000, L"filename.ini"); 
    int iStopAngle =GetPrivateProfileInt(L"ScanConfiguration",L"StopAngle", 2250000, L"filename.ini"); 

Pero obtengo solo los valores predeterminados en las variables, no los valores correctos del archivo. No he hecho nada con el registro todavía. ¿Hay algo que tenga que hacer en el registro para obtener el valor correcto?

Cualquier sugerencia será útil Gracias.

Respuesta

8

Una idea viene a la mente: GetPrivateProfileString y sus amigos tienen un poco de capricho con la forma en que encuentran el archivo INI. A menos que especifique una ruta al archivo INI (incluso algo tan simple como .\filename.ini), suponen que el archivo se encuentra en el directorio de Windows. Esto es casi seguro que no es lo que quiere, y probablemente lleve a no encontrar el archivo, y por lo tanto a los valores predeterminados.

Además, no espere soporte total de Unicode de esas funciones. They're just Unicode wrappers around ANSI text.

+0

V..Gracias .. Intenté dar el camino completo ... Pero no funciona. – ShivShambo

+0

Verifique nuevamente su archivo INI en ese caso. Puede tener una BOM (marca de orden de bytes) o algo similar que podría confundir al analizador. – ChrisV

+0

Comprobé el error usando GetLastError() y devuelve 2, lo que significa que no puede encontrar la ruta especificada. – ShivShambo

Cuestiones relacionadas