C++/CLI 全局函数可访问性问题

本文关键字:访问 问题 函数 CLI 全局 C++ | 更新日期: 2023-09-27 18:31:17

当编译的 DLL 在 C# 中导入时,如何使 C++/CLI 函数可见?

我可以简单地通过在类名称前面加上 public 来做到这一点,但函数并非如此,当我这样做时我会收到语法错误。

C++/CLI 全局函数可访问性问题

不能,CLR 不支持全局函数。 您可以在 C++/CLI 中编写它们,但编译器会生成一个特殊的类来为它们提供一个家。 类名是<Module>,无法从C#代码访问。

通过使用公共静态方法声明公共 ref 类,您将获得完全相同的等效项。 访问这些没有问题。 与 C# 中的静态类相同,减去检查。 您可以通过声明其抽象和密封来添加检查:

public ref class Utils abstract sealed
{
public:
    void static foo() {}
};