C/Visual C - Al llamar un API fuera de Main el programa se para

 
Vista:

Al llamar un API fuera de Main el programa se para

Publicado por gAdrev (2 intervenciones) el 02/07/2003 16:49:17
Hola tengo una pequeño problema para la que quizás la respuesta es muy obvia, pero como aún estoy aprendiendo C me gustaría que se me aclarase.
Al llamar a la función GetLocalTime() de la API de Windows desde una función MostrarHora en un fichero C++, el programa... "crashea" sale el cuadrito de error de Windows (depende su aspecto según 9x / XP). He declarado una variable de tipo puntero a SYSTEMTIME y he incluido Windows.h. La función tiene éxito y funciona si la llamo desde Main, pero desde fuera me es imposible.... =(
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Al llamar un API fuera de Main el programa se p

Publicado por JoseGR (41 intervenciones) el 03/07/2003 10:57:34
Hola, seguramente que el problema que tienes es que la funcion GetLocalTime le pasar un apuntador una estructura SYSTEMTIME pero no has declarado espacio para esa estructura, solo un apuntador. Si esto es lo que hiciste debes hacer esto:

...
SYSTEMTIME st;
...
GetLocalTime(&st);
// Ahora puedes usar los datos de st mediante st.wYear por ejemplo

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Otra duda (referencias)

Publicado por gAdrev (2 intervenciones) el 03/07/2003 16:16:53
Muchas gracias ese era el problema, sólo había creado un puntero a la estructura, ahora todo funciona perfectamente. Sin embargo, me acaba de surgir otra, en este caso sobre referencias. Como he podido comprobar en mi libro de C, las referencias no pueden ser creadas a otras referencias ni se pueden crear punteros a referencias, pero sí ref. a punteros. Para declarar una se haría así
int *p;
int *&rp = p;

No sería lo lógico escribir &*rp = p; anteponiendo el símbolo de referencia antes que el de puntero (referencia a puntero) Muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 11
Ha aumentado su posición en 5 puestos en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

RE:Otra duda (referencias)

Publicado por zzzzz (318 intervenciones) el 07/07/2003 19:26:10
Hola! A mi me suena muy lógico eso, int *p;
int *&rp = p;
porque una referencia es una dirección de memoria y no puedes guardar una dirección de memoria en otra dirección de memoria, aunque me imagino que eso también ha de tener que ver con la forma en que crearon el programa. En c++ creo que si se puede
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar