C++ .net アプリケーションで定期的に使用する関数のグループを含む DLL を作成しようとしています。これらの関数は特定のオブジェクトを参照しないため、名前空間に配置するのが最善の方法だと思います。
namespace MyNamespace
{
int a();
int b();
int c();
}
DLL は正しくコンパイルされますが、クライアント ソリューションで名前空間を使用しようとすると、次のエラーが発生します。
error C2871: 'MyNamespace' : a namespace with this name does not exist
ただし、関数をクラス内の静的メソッドとしてラップすると、クライアント ソリューションは期待どおりにコンパイルおよび実行されます。
namespace MyNamespace
{
public ref class MyClass
{
public:
static int a();
static int b();
static int c();
}
}
私の推測では、ref キーワードがクラスに対して何らかの処理を行って、クラスをクライアント アプリケーションに公開していると考えられます。クラスの代わりに名前空間を使用してマネージド/CRL/CLI/.net .DLL を作成するにはどうすればよいですか?