Aviso das ferramentas de vinculador LNK4222
símbolo exportado 'symbol' não pode ser assinalado como ordinal
Os seguintes símbolos não devem ser exportados por ordinal:
DllCanUnloadNow
DllGetClassObject
DllGetClassFactoryFromClassString
DllInstall
DllRegisterServer
DllRegisterServerEx
DllUnregisterServer
Essas funções estão sempre localizadas por nome, usando GetProcAddress
. O vinculador avisa sobre esse tipo de exportação porque pode resultar em uma imagem maior. Isso pode acontecer se o intervalo de suas exportações ordinais for grande, com relativamente poucas exportações. Por exemplo,
EXPORTS
DllGetClassObject @1
MyOtherAPI @100
exigirá 100 slots na tabela de endereços de exportação com 98 deles (2-99) apenas para preenchimento. Por outro lado,
EXPORTS
DllGetClassObject
MyOtherAPI @100
exigirá dois slots. (Lembre-se de que você também pode exportar com a opção do vinculador /EXPORT.)