2016-11-23 12 views
3

このチュートリアルの後に、このチュートリアルを実行してマネージC++クラスを作成しようとしていますが、私は名前空間システムSystem :: String * _msgを使用しようとしましたが、マネージC++リファレンスクラスでnamespace Systemを使用する方法

はC++/CLI refのクラスまたはインタフェースのクラスへの通常のポインタが

Hello.h

を許さない ていると言い代わりに管理されていない*ポインタ使用の3210

using namespace System; ref class Hello { public: System::String *_msg; Hello(System::String *Msg); }; 

HELLO.CPPファイル

#include "Hello.h" 
using namespace System; 


Hello::Hello(System::String *Msg) 
{ 
    Msg = _msg; 
    Console::WriteLine(Msg); 
} 
void main() { 
    Hello^h = gcnew Hello("hello world"); 

} 
+1

それに管理ポインタ(^)しないのはなぜ?私が理解しているところでは、System :: Stringはrefクラスであり、通常のポインタは使用できません。 – Andrei

+0

マネージドコードとrefクラスで管理ポインタ/ '^'を使用します。 – Gasper

答えて

2

管理ポインタ^記号:

using namespace System; 

    ref class Hello 
    { 
    public: 
     System::String ^_msg; 
     Hello(System::String ^Msg); 
    }; 
    #include "Hello.h" 
    using namespace System; 

    Hello::Hello(System::String ^Msg) 
    { 
     Msg = _msg; 
     Console::WriteLine(Msg); 
    } 
    void main() { 
     Hello^h = gcnew Hello("hello world"); 
    } 
+0

お返事ありがとうございました。 –

関連する問題