C++/CLI global function accessibility issue

.net, c#, c++-cli

Solution

You can't, the CLR does not support global functions. You can write them in C++/CLI but the compiler generates a special class to give them a home. The class name is `<Module>`, it is not accessible from C# code.

You'll get the exact equivalent by declaring a public ref class with public static methods. No trouble accessing those. Same idea as a static class in C#, minus the checks. You can add the checks by declaring it abstract and sealed:

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

Problem

How can I make a C++/CLI function visible, when the compiled DLL is imported in C#? I can do it with classes simply by preceding their name with public, but its not the case with functions and I get syntax error when I do so.

Original source