最近、ネイティブ C++ ライブラリの C++/CLI ラッパーを書き始めました。このコンパイル警告が表示されるようになりました
"警告 LNK4249: ディレクティブ '/CLRTHREADATTRIBUTE:STA' はコマンド ラインと競合します。無視されます"
私の c++/cli ラッパーは、リンカのコマンド ライン引数で MTA 用に設定されていますが、STA ディレクティブを指定しようとしているファイルまたはプロジェクトがわかりません。
.NET が強制的にライブラリをマルチスレッド化することについて心配するほど、十分な読み物をしました。これは主にアプリケーションでの COM の使用に影響することを読みましたが、DLL が COM を使用しているかどうか、またはどこで COM を使用しているかはよくわかりません。相互運用サービスを使用して文字列データをマーシャリングし、'msclr\auto_gcroot.h' を使用してアンマネージド クラスからマネージド クラスをポイントしています。ラップされているネイティブ C++ ライブラリに、次のヘッダーを含めます。
#include <afxwin.h> // MFC core and standard components
#include <afxext.h> // MFC extensions
#include <afxmt.h>
#include "Winsock2.h."
#include <time.h>
将来のつらい経験を避けるのに役立つアドバイスはありますか、それとも心配する必要はありませんか?