How can I call a exported function using ordinal number

Benjamin picture Benjamin · Aug 30, 2010 · Viewed 11.7k times · Source

If a dll exports some functions and the functions have only ordinal numbers, how can I call the functions?

Give me a short example please.

Answer

Dean Harding picture Dean Harding · Aug 30, 2010

The documentation for GetProcAddress explains that you pass the integer ordinal in the low-order word of the lpProcName parameter. The MAKEINTRESOURCE macro can actually be used to make this a little easier:

int ordinal = 123;
HANDLE dll = LoadLibrary("MyDLL.dll");
FARPROC fn = GetProcAddress(dll, MAKEINTRESOURCE(ordinal));