リンカー ツールの警告 LNK4222
エクスポートされたシンボル 'symbol' に序数を割り当てないでください
次のシンボルは、序数でエクスポートしないでください:
DllCanUnloadNow
DllGetClassObject
DllGetClassFactoryFromClassString
DllInstall
DllRegisterServer
DllRegisterServerEx
DllUnregisterServer
これらの関数は、常に GetProcAddress
を使用して名前によって検索されます。 リンカーは、この種のエクスポートに関する警告を表示します。これは、イメージのサイズが大きくなる可能性があるためです。 これは、クスポートが比較的少ないエクスポートにおいて、序数エクスポートの範囲が大きい場合に発生する可能性があります。 たとえば、 にします。
EXPORTS
DllGetClassObject @1
MyOtherAPI @100
エクスポート アドレス テーブルで 100 のスロットを必要とし、そのうち 98 (2 ~ 99) は単なるフィラーです。 反対に、
EXPORTS
DllGetClassObject
MyOtherAPI @100
2 つのスロットが必要です。 (リンカー オプション /EXPORT でもエクスポートできますので、注意してください。)