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.