Estoy tratando de comprender mejor las funciones C externas.mejor comprensión de las funciones externas "C"
Según mi conocimiento, una función C externa siempre es una función a la que está intentando llamar desde una aplicación que ya se ha compilado. Ya sea una biblioteca ejecutable, estática o dinámica.
extern "C"
{
HRESULT CreateDevice();
typedef HRESULT (*CREATEDEVICE)();
HRESULT ReleaseDevice();
typedef HRESULT (*RELEASEDEVICE)();
}
Así que mi pregunta es ...
es mi entendimiento correcto ??
¿Siempre tiene que ser un puntero de función C? '
¿Por qué debe usar un typedef para cada función?
Supongo que cuando usa GetProcAddress(). Está asignando memoria a las aplicaciones de datos HEAP y no a la que está llamando. Por lo tanto, debe liberarlo de ese montón también?
¿Has visto esta pregunta? http://stackoverflow.com/questions/67894/why-do-we-need-extern-c-include-foo-h-in-c – Jujjuru