トップ回答者
エラー CS0570

質問
-
こんにちは、お世話になります。
下記のようなC++/CLIで作ったClassを
C#から参照しようしています。が、コンパイル時に『エラー CS0570』になってしまいます。
このクラスをC#で参照する方法はないでしょうか?環境はVS2005です。
どうぞよろしくお願い致します。//////////////////////////////////
// CliClass.h (C++/CLI)#pragma once
using namespace System;
namespace CliClass {
public ref class Class1
{
public :
int c1;
};public ref class Class2
{
public :
Class1 cs1;
int c2;
};
}
////////////////////////////////////////////////////////////////////
// ClassUserControl1.cs (C#)
:
using CliClass;namespace CsControlLibrary1
{
public partial class UserControl1 : UserControl
{
public void testfunc(Class2 testclss)
{
int wk1 = testclss.cs1.c1;
}
}
}
////////////////////////////////////////////////////////////////////
..\ClassUserControl1.cs(21,26): エラー CS0570: 'CliClass.Class2.cs1' はこの言語によってサポートされていません。
//////////////////////////////////
回答
すべての返信
-
外池と申します。
もしかして、一つのプロジェクトで、C#と、C++/CLIを、チャンポンにしようとされています? それは、無理じゃないかと。
プロジェクトを二つに分けてはいかがでしょう?
一つは、C++/CLIで、クラスライブラリーを作るプロジェクトにして、CliClassを提供するDLLを生成するようにします。
もう一つは、C#のプロジェクトにして、上述のDLLを参照するようにします。(あ、これも、一種のクラスライブラリーか。それでもいいですが、最初は、普通にコンソールアプリのEXEで試してみてください。)
私は、VBとC#をこの方法でチャンポンにしたりしています。
-
外池様、
早速の回答ありがとうございます。
すみません、.netは初心者なもので、
私の認識が間違っていて、もしかしたらちゃんぽんになっているかもしれませんが、
一応プロジェクトは分けているつもりです。プロジェクトとしては、
通常、C++/CLIで作ったMainのFormからファイルI/OをするC++/CLIのクラス(DLL)でファイルを読み
その内容をC#で作ったFormに貼り付けたカスタムコントロールに描画しています。ところがC#のカスタムコントロールからファイルI/Oのクラス(DLL)を参照する
必要があって、組み込んでみたらエラー CS0570 が発生しました。本物はちょっと大きなクラスなので簡単に回避出来るとうれしいのですが・・・