C++/CLI (バージョン 9.0) を使用して .NET アセンブリを作成しています。PIMPL イディオムを使用して、パブリック ヘッダーに不要なものを入れないようにしたいと考えています。残念ながら、クラスを前方宣言して追跡ハンドルを使用しようとすると、リンカー警告 4248 が表示されます。
警告 LNK4248: 'MyNamespace.PrivateClass' の未解決の typeref トークン (0100000E); イメージが実行されない場合があります
これは、実装クラスに CLI クラスを使用する場合でも、ネイティブ クラスを使用する場合でも同じようです。
コード例を以下に示します。
namespace MyNamespace
{
ref class PrivateClass; // forward dec
ref class MyPublicClass
{
private:
PrivateClass^ m_Imp;
};
}
残念ながら、警告に関する Microsoft の説明はあまり有益ではありません。