Pregunta: | 26567 - ACERCA DE PUNTEROS DE ESTRUCTURAS |
Autor: | Leonardo Laguna Ruiz |
Estoy intentando obtener las capacidades de un puerto midi utilizando la libreria mmsystem.h con la función "midiOutGetDevCaps" la cual segun esta definida asi:
MMRESULT midiOutGetDevCaps( UINT_PTR uDeviceID, LPMIDIOUTCAPS lpMidiOutCaps, UINT cbMidiOutCaps ); donde el segundo parametro me esa dando lata pues es una direccion de una estructura. Yo lo estoy hacien de esta manera: MIDIOUTCAPS midicaps; error = midiOutGetDevCaps(MIDIMAPPER,midicaps,52); y obtengo este error de compilacion "error C2664: 'midiOutGetDevCapsA' : cannot convert parameter 2 from 'struct tagMIDIOUTCAPSA' to 'struct tagMIDIOUTCAPSA *' No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called" Quiero saber si alguien me puede ayudar pues no tengo mucha experiencia con estructuras. |
Respuesta: | Daniel Azkona Coya |
Creo que tu problema no tiene que ver con desconocer las estructuras, sino en desconocer los punteros, ya que la solución a tu problema es pasarle la estructura a la función por referencia, con &:
error = midiOutGetDevCaps(MIDIMAPPER,&midicaps,52); de esta forma, la función llamada recibe un puntero a la variable declarada en local. |