C++/CLI 全局函数可访问性问题
本文关键字:访问 问题 函数 CLI 全局 C++ | 更新日期: 2023-09-27 18:31:17
当编译的 DLL 在 C# 中导入时,如何使 C++/CLI 函数可见?
我可以简单地通过在类名称前面加上 public 来做到这一点,但函数并非如此,当我这样做时我会收到语法错误。
不能,CLR 不支持全局函数。 您可以在 C++/CLI 中编写它们,但编译器会生成一个特殊的类来为它们提供一个家。 类名是<Module>
,无法从C#代码访问。
通过使用公共静态方法声明公共 ref 类,您将获得完全相同的等效项。 访问这些没有问题。 与 C# 中的静态类相同,减去检查。 您可以通过声明其抽象和密封来添加检查:
public ref class Utils abstract sealed
{
public:
void static foo() {}
};