Linkertoolwarnung LNK4222

Exportiertes Symbol "Symbol" sollte keine Ordnungszahl zugewiesen werden.

Die folgenden Symbole sollten nicht von Ordnungszahlen exportiert werden:

  • DllCanUnloadNow

  • DllGetClassObject

  • DllGetClassFactoryFromClassString

  • DllInstall

  • DllRegisterServer

  • DllRegisterServerEx

  • DllUnregisterServer

Diese Funktionen befinden sich immer mithilfe des Namens GetProcAddress. Der Linker warnt über diese Art von Export, weil es zu einem größeren Bild führen könnte. Dies kann passieren, wenn der Bereich Ihrer Ordinalexporte mit relativ wenigen Exporten groß ist. Ein auf ein Objekt angewendeter

EXPORTS
   DllGetClassObject   @1
   MyOtherAPI      @100

erfordert 100 Steckplätze in der Exportadresstabelle mit 98 davon (2-99) nur Füllzeichen. Auf der anderen Seite

EXPORTS
   DllGetClassObject
   MyOtherAPI      @100

erfordert zwei Steckplätze. (Beachten Sie, dass Sie auch mit der Option "/EXPORT linker" exportieren können.)