C++/CLI を使用して DLL を作成するときに、DllMain に相当するものは何ですか?
この初期化コードから呼び出せないものに制限はありますか?
Dan: ローダー ロック、C++/CLI の CLR の遅延ロード、および混合モード バイナリの適切な初期化に関しては、昨日この件についてここに投稿しました。
多かれ少なかれ、混合モードのバイナリを使用している場合は、 にいる間はマネージ コードを実行してはなりませんDllMain()
。
.NET 2.0 以降、「モジュール初期化子」があります。ローダーロックの問題を解決する方法の詳細については、ここを参照してください。また、ここも参照してください。
あなたの質問に対する直接的な回答として、このページでは次のような標準を引用しています。
別のマネージド プロジェクト (ac# アプリケーションなど) で dll を使用している場合は、何もする必要はありません。アクセスしようとしているクラスがref
クラスである限り、他のマネージド プロジェクトからアクセスできます。応用。
.Net dll の大きな利点の 1 つは、ローダー ロックを回避できることです。副作用の 1 つは、DllMain がないことです。