2

混合 DLL を参照するアプリケーション (CLI) があります。DLL は、静的関数を使用して "ref" クラスを実装します。

ref-class の (部分的な) コードは次のとおりです。

public ref class AAA
{
public:
static bool Write(System::String^ sz);

// Not accessible!!!
public: static BOOL TraceRect(const CRect& rc);
};

EXE 内の C++ コードで、両方の関数を呼び出そうとしています。

// This works
AAA::Write("hello");

// This doesn't !!!
CRect rc(0, 0, 12, 234);
AAA::TraceRect(rc);

2 番目の関数にアクセスするにはどうすればよいですか?

4

1 に答える 1

4

これはおそらく、ネイティブ型 (この場合は CRect) が既定でプライベートとして扱われるためです。したがって、メソッドにはアクセスできますが、rc のパラメーターの型にはアクセスできません。make_public を使用してアクセス可能にすることができます: http://msdn.microsoft.com/en-us/library/ms235607.aspx

C3767 と make_public を検索すると、このトピックに関する他の情報がたくさん見つかります。

于 2011-04-11T15:48:26.320 に答える