Partilhar via


Aviso do Linker LNK4222

o símbolo exportado «símbolo» não deve ter um valor ordinal atribuído

Observações

Os seguintes símbolos não devem ser exportados por ordinal:

  • DllCanUnloadNow

  • DllGetClassObject

  • DllGetClassFactoryFromClassString

  • DllInstall

  • DllRegisterServer

  • DllRegisterServerEx

  • DllUnregisterServer

Estas funções estão sempre localizadas pelo nome, usando GetProcAddress. O linker alerta sobre esse tipo de exportação é porque pode resultar em uma imagem maior. Isso pode acontecer se o alcance de suas exportações ordinais for grande, com relativamente poucas exportações. Por exemplo

EXPORTS
   DllGetClassObject   @1
   MyOtherAPI      @100

exigirá 100 posições na tabela de endereços de exportação, com 98 delas (2-99) sendo apenas preenchimento. Por outro lado

EXPORTS
   DllGetClassObject
   MyOtherAPI      @100

exigirá duas vagas. (Lembre-se de que você também pode exportar com a opção de vinculador /EXPORT .)