링커 도구 경고 LNK4222
내보낸 기호 'symbol'에 서수가 할당되어서는 안 됩니다.
다음 기호는 서수로 내보내지 않아야 합니다.
DllCanUnloadNow
DllGetClassObject
DllGetClassFactoryFromClassString
DllInstall
DllRegisterServer
DllRegisterServerEx
DllUnregisterServer
이러한 함수는 항상 이름을 사용하여 찾습니다 GetProcAddress
. 링커는 이러한 종류의 내보내기에 대해 경고합니다. 이는 더 큰 이미지를 초래할 수 있기 때문입니다. 이는 서수 내보내기의 범위가 비교적 적은 내보내기가 있는 경우 발생할 수 있습니다. 예를 들면 다음과 같습니다.
EXPORTS
DllGetClassObject @1
MyOtherAPI @100
는 내보내기 주소 테이블에 100개의 슬롯이 필요하며 그 중 98개(2-99개)는 채우기만 합니다. 다른 한편으로는
EXPORTS
DllGetClassObject
MyOtherAPI @100
는 두 개의 슬롯이 필요합니다. (/EXPORT 링커 옵션을 사용하여 내보낼 수도 있습니다.)