1

.net c#から使用しようとしているc++プロジェクトがあります。主な問題は、C++では次のようなものがあることです

static const GUID guid ={ 0x4be732d4, 0x3244, 0x4ad3, { 0x92, 0xbd, 0xf2, 0x80, 0x9d, 0xf0, 0x96, 0xf6 } };
HRESULT ActivateItem(String^ Name, String^ Var )
{
    hr = Item->SetId(&guid);
    StartItem(&guid);
}

From C# would be ActivateItem("someName", "someVar");

DBで使用するにはc#でGUIDを作成する必要がありますが、System.Guidは_GUIDと同じではなく、C++ではかなり悪いです。

誰でも手を差し伸べることができますか?

前もって感謝します、

4

1 に答える 1

1

MSDNは、これを行う方法に関する便利なチュートリアルを提供しています。コードは、必要に応じてC ++/CLIでも使用できることに注意してください。

_GUIDから変換するには:

System::Guid FromGUID(_GUID& guid) {  
   return System::Guid(guid.Data1, guid.Data2, guid.Data3,   
                guid.Data4[0], guid.Data4[1],   
                guid.Data4[2], guid.Data4[3],   
                guid.Data4[4], guid.Data4[5],   
                guid.Data4[6], guid.Data4[7] );  
}  

_GUIDに戻すには:

_GUID ToGUID(System::Guid& guid) {  
   array<Byte>^ guidData = guid.ToByteArray();  
   pin_ptr<Byte> data = &(guidData[0]);    
   return *(_GUID*)data;  
}  
于 2017-03-06T16:48:26.280 に答える