我需要以下代码的帮助。

typedef TP_StatusType ( WINAPI * TP_UserSelectPathType )( TP_InterfaceType* anInterface, UINT32* aReturnPathId, TP_Path* aReturnPath );
extern TP_UserSelectPathType TP_UserSelectPath;

locRouterDll = LoadLibraryA( aDllFileName );
TP_UserSelectPath = (TP_UserSelectPathType)GetProcAddress( locRouterDll, "TP_UserSelectPath" );

TP_StatusType eStatus;
eStatus = TP_UserSelectPath( &eInterface, &lPathId, &xPathHandle );

最后一行调用哪个函数?

最佳答案

最后一行调用哪个函数?

好吧,TP_UserSelectPath是一个函数指针变量,该变量分配了调用GetProcAddress所返回的函数指针。所以

TP_UserSelectPath(...)

调用由TP_UserSelectPath模块导出的名为locRouterDll的函数。这是代码外部的功能。该函数在模块locRouterDll中实现,该模块在运行时通过调用LoadLibraryA动态加载到您的进程中。

如果这对您来说是全新的,那么您应该先阅读Dynamic-Link Libraries topic on MSDN

09-04 12:34