5

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

我可以简单地通过在类的名称前面加上 public 来实现它,但函数不是这样,当我这样做时会出现语法错误。

4

1 回答 1

10

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

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

public ref class Utils abstract sealed
{
public:
    void static foo() {}
};
于 2012-04-17T07:24:45.347 回答