2

我有一个引用混合 DLL 的应用程序 (CLI)。DLL 实现了一个带有静态函数的“ref”类。

这是 ref 类的(部分)代码

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);

如何访问第二个功能?

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 回答