在32位或64位平台上的非托管C ++代码中,假设我想提供一个名为CallDLLFunction的API函数,它将代表其调用者调用DLL函数。此API函数将使用以下参数:
CallDLLFuction ( FullyQuialifiedDLLName, DLLFunction, ReturnType, ListOfParameterTypes, ListOfParameters )
API函数关于目标DLL函数的唯一知识是通过传递给它的这些参数。有人可以说明你将如何实现这个功能?我假设(在Windows上)必须使用LoadLibrary和GetProcAddress来调用“FullyQuialifiedDLLName”DLL中的“DLLFunction”。因此问题的核心似乎是当参数类型和返回类型变化时,如何以通用方式使用GetProcAddress,并且无法提前系统地列出或知道。