Hi all,

This is actually a duplicate of my post on the D.learn forums :).
I am concerned that it hasn't been answered only because it is in a less popular sub forum. I'll try to make it short.

This websites recommends implib for the creation of import library therefore I have been using it. When I compile + link my code containing "extern( Windows )" function declarations, I get the following messages:
Error 42: Symbol Undefined _functionName@ordinal (generic case)
Error 42: Symbol Undefined _glGetIntegerv@8 (just an example)

Let's hypothesize that I am using "shared.dll" and I would like to "statically" link against it using an import library. I use this command: implib /noi /system shared.lib ..\shared.dll To generate the import library. Once done, I make sure the linker finds it and rebuild the program. I get the same errors.

Therefore, I looked into the import library only to find that no exported symbols have and ordinal appended (@someInt), CONTRARILY to the symbols you can find in the import library provided by the compiler (..\D\windows\lib\*).

So... how were those generated in the first place (what makes them have those ordinals, was this an automated process or did someone actually wrote the module definition files by hand)? How and why is extern( Windows ) generating symbol calls expecting ordinals for stdcall conventions (how does it know that _glGetIntegerv has an ordinal of 8 for example)? Is the ordinal a desirable requirement for those calls?

Thanks,
Phil


Reply via email to