此結構化數據通過UDP連接發送。我可以讀取UDP數據包,但是我無法處理來自此C++ Struct的數據。通過UDP連接在C#中讀取此C++編組數據
這裏是結構:
struct scanner_status{
// ---
u_short UDP_STATUS;
u_short TCP_COMMAND;
u_short TCP_LOGGING;
// scanner attributes
EPlatformModelNumber ModelNo;
string SerialNo;
bool bHasCT;
bool bHasPET;
bool bHasSPECT;
// physical
EBedType_mMM _eCurrBedType;
int_16 _CurrPallet;
bool _bTunnelPresent;
//
scanner_status()
: UDP_STATUS(u_short(~0))
, TCP_COMMAND(u_short(~0))
, TCP_LOGGING(u_short(~0))
, ModelNo(eUnknownPlatformModelNumber)
, bHasCT(false)
, bHasPET(false)
, bHasSPECT(false)
, _eCurrBedType(emMM_BedType_Unknown)
, _CurrPallet(-1)
, _bTunnelPresent(false)
{ }
};
decl_marshalling(scanner_status);
我想獲得幫助,在C#讀這篇文章,我沒有真正熟悉C++,並與編組,AO任何幫助是極大的讚賞。
假設你有一個帶有原始數據的byte [],對不對?你看過['System.BitConverter'](http://msdn.microsoft.com/en-us/library/system.bitconverter.aspx)嗎?填充是使事情複雜化的一件事,並且不知道用於構建C++代碼的編譯器和編譯器_settings_,我們只能猜測。 – ildjarn 2012-04-06 22:27:31