Linker Tools Warning LNK4222
exported symbol 'symbol' should not be assigned an ordinal
The following symbols should not be exported by ordinal:
DllCanUnloadNow
DllGetClassObject
DllGetClassFactoryFromClassString
DllInstall
DllRegisterServer
DllRegisterServerEx
DllUnregisterServer
These functions are always located by name, using GetProcAddress
. The linker warns about this kind of export is because it could result in a larger image. This could happen if the range of your ordinal exports is large with relatively few exports. For example,
EXPORTS
DllGetClassObject @1
MyOtherAPI @100
will require 100 slots in the export address table with 98 of them (2-99) just filler. On the other hand,
EXPORTS
DllGetClassObject
MyOtherAPI @100
will require two slots. (Be aware that you can also export with the /EXPORT linker option.)