Avviso degli strumenti del linker LNK4222
Il simbolo esportato 'symbol' non deve essere assegnato a un ordinale
I simboli seguenti non devono essere esportati in base all'ordinale:
DllCanUnloadNow
DllGetClassObject
DllGetClassFactoryFromClassString
DllInstall
DllRegisterServer
DllRegisterServerEx
DllUnregisterServer
Queste funzioni si trovano sempre in base al nome, usando GetProcAddress
. Il linker avvisa di questo tipo di esportazione perché potrebbe comportare un'immagine più grande. Ciò può verificarsi se l'intervallo delle esportazioni ordinali è elevato con esportazioni relativamente poche. ad esempio:
EXPORTS
DllGetClassObject @1
MyOtherAPI @100
richiederà 100 slot nella tabella degli indirizzi di esportazione con 98 di essi (2-99) solo filler. D'altra parte
EXPORTS
DllGetClassObject
MyOtherAPI @100
richiederà due slot. Tenere presente che è anche possibile esportare con l'opzione /EXPORT linker.