DLL 内にラップされた広範なクラスと関数のセットを Windows アプリケーションで参照できるようにしたいのですが、アプリケーションがこの DLL をロードする前に正しいバージョンを選択できるようにする必要があります。私は dllexport / dllimport を使用してインポート ライブラリを生成し、ロード時の動的リンクを実行することに慣れていますが、インポート ライブラリ自体へのある種のエントリ ポイント関数を見つける可能性に関して、インターウェブに関する情報を見つけることができないようです。具体的には、CPUID を使用してホストの CPU 構成を検出し、その情報に基づいて特定の DLL をロードするかどうかを決定できます。さらに具体的に言えば、2 つのバージョンの DLL をビルドしたいと考えています。/ARCH:AVX
SSE - AVX 命令を最大限に活用し、SSE2 よりも新しいものは何も利用できないことを前提としています。
1 つの要件: 読み込み時に DLL をリンクする必要があるか、DLL の外部から参照される関数を手動でバインドする非常に簡単な方法が必要であり、多くの場合、ほとんどがクラス内にラップされています。
おまけの質問: 私のライブラリはクロスプラットフォームになるので、Linux ベースの共有オブジェクトに相当するものはありますか?