Po prostu staram się lepiej zrozumieć zewnętrzne funkcje C.lepsze zrozumienie zewnętrznych funkcji "C"
Zgodnie z moją wiedzą, zewnętrzna funkcja C jest zawsze funkcją, do której próbujesz wywołać z aplikacji, która została już skompilowana. Biblioteka wykonywalna, statyczna lub dynamiczna.
extern "C"
{
HRESULT CreateDevice();
typedef HRESULT (*CREATEDEVICE)();
HRESULT ReleaseDevice();
typedef HRESULT (*RELEASEDEVICE)();
}
Więc moje pytanie brzmi ...
Czy moje rozumienie poprawne ??
Czy zawsze musi to być wskaźnik funkcji C?
Dlaczego musisz używać typedef dla każdej funkcji?
Zakładam, że podczas korzystania z GetProcAddress(). Przydzielasz pamięć na te konkretne aplikacje HEAP, a nie na tę, z której ją wywołujesz. Dlatego musisz zwolnić go również z tej sterty?
Czy widzisz to pytanie? http://stackoverflow.com/questions/67894/why-do-we-we-need-extern-c-include-foo-h-in-c – Jujjuru