如何通过序数输出的函数调用?

时间:2011-05-14 06:54:27

标签: c windows export

大多数函数导出名称,但有些导出按顺序导出

这些函数是如何调用的?

2 个答案:

答案 0 :(得分:5)

@AProgrammer:你的问题有两个答案。首先,链接器将知道要调用哪个序号。创建库时,此信息将保存在.lib文件中。否则,正如@ c-smile所指出的,您可以使用GetProcAddress来查找函数并调用它。

int ordinal = xxx;
functor = (MyFunctorType) GetProcAddress(hMod, (LPCSTR) ordinal);
if (functor)
{
    functor(...);
}

@DriverBoy:是的,这意味着.DLL中的导出符号不能超过65536个。

答案 1 :(得分:0)

http://msdn.microsoft.com/en-us/library/ms683212(v=vs.85).aspx

  

lpProcName [in]函数或   变量名称或函数   序数值。如果此参数是   序数值,它必须在   低阶词;高阶词   必须为零。