C++调用引用类函数(混合代码)

发布于 2024-10-31 11:39:08 字数 442 浏览 0 评论 0原文

我有一个引用混合 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);

如何访问第二个函数?

I have an application (CLI) that references a mixed-DLL.
The DLL implements a "ref" class with static functions.

Here is the (partial) code for the ref-class

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

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

Within the EXE, in C++ code, I'm trying to call both functions:

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

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

How can I access the second function?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

ま昔日黯然 2024-11-07 11:39:08

这可能是因为本机类型(在本例中为 CRect)默认被视为私有类型。因此,虽然该方法是可访问的,但 rc 的参数类型是不可访问的。您可以使用 make_public 使其可访问:
http://msdn.microsoft.com/en-us/library/ms235607.aspx

搜索 C3767 和 make_public,您会发现有关该主题的大量其他信息。

It's probably because native types (in this case, CRect) are treated as private by default. So, while the method is accessible, the parameter type for rc is not accessible. You can make it accessible by using make_public:
http://msdn.microsoft.com/en-us/library/ms235607.aspx

Search for C3767 and make_public and you'll find plenty of other info on the topic.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文