Поделиться через


Предупреждение средств компоновщика LNK4222

Экспортируемый символ "символ" не должен быть назначен порядковый номер

Следующие символы не должны экспортироваться порядком.

  • DllCanUnloadNow

  • DllGetClassObject

  • DllGetClassFactoryFromClassString

  • DllInstall

  • DllRegisterServer

  • DllRegisterServerEx

  • DllUnregisterServer

Эти функции всегда находятся по имени, используя GetProcAddress. Компоновщик предупреждает об этом экспорте, так как это может привести к более крупному изображению. Это может произойти, если диапазон порядковых экспортов большой с относительно небольшим количеством экспортов. Например,

EXPORTS
   DllGetClassObject   @1
   MyOtherAPI      @100

потребуется 100 слотов в таблице адресов экспорта с 98 из них (2-99) просто заполнители. С другой стороны

EXPORTS
   DllGetClassObject
   MyOtherAPI      @100

потребуется два слота. (Обратите внимание, что вы также можете экспортировать с помощью параметра компоновщика /EXPORT .)