Partager via


Avertissement des outils Éditeur de liens LNK4222

le symbole exporté 'symbol' ne doit pas être affecté à un ordinal

Les symboles suivants ne doivent pas être exportés par ordinal :

  • DllCanUnloadNow

  • DllGetClassObject

  • DllGetClassFactoryFromClassString

  • DllInstall

  • DllRegisterServer

  • DllRegisterServerEx

  • DllUnregisterServer

Ces fonctions sont toujours situées par nom, à l’aide GetProcAddressde . L’éditeur de liens avertit de ce type d’exportation, car il peut entraîner une image plus grande. Cela peut se produire si la plage de vos exportations ordinales est importante avec relativement peu d’exportations. Par exemple :

EXPORTS
   DllGetClassObject   @1
   MyOtherAPI      @100

nécessite 100 emplacements dans la table d’adresses d’exportation avec 98 d’entre eux (2-99) juste remplissage. D'un autre côté

EXPORTS
   DllGetClassObject
   MyOtherAPI      @100

nécessite deux emplacements. (N’oubliez pas que vous pouvez également exporter avec l’option /EXPORT Linker.)