我只是想更深入地了解extern C函数。
据我所知,extern C函数总是你尝试从已经编译的应用程序中调用的函数。可以是可执行文件、静态库或动态库。
extern "C"
{
HRESULT CreateDevice();
typedef HRESULT (*CREATEDEVICE)();
HRESULT ReleaseDevice();
typedef HRESULT (*RELEASEDEVICE)();
}
所以我的问题是...
我的理解是否正确?
它总是必须是C函数指针吗?
为什么每个函数都必须使用typedef?
我假设当你使用GetProcAddress()时,你正在那个特定应用程序的堆上分配内存,而不是从调用它的堆中分配。因此,你必须在那个堆中释放它吗?