using System;
using System.Collections .Generic ;
using System.ComponentModel ;
using System.Data ;
using System.Drawing ;
using System.Linq ;
using System.Text ;
using System.Threading .Tasks ;
using System.Windows .Forms ;
using System.Runtime .InteropServices ;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1( )
{
InitializeComponent( ) ;
InitData( new byte[ ] { 0xC0 , 0xAB , 0xCD } ) ;
}
void InitData( byte[ ] rawData)
{
GCHandle handle = GCHandle.Alloc ( rawData, GCHandleType.Pinned ) ;
Setting s = ( Setting) Marshal.PtrToStructure ( handle.AddrOfPinnedObject ( ) , typeof( Setting) ) ;
checkBoxIsEnable.DataBindings .Add ( new Binding( "checked" , s, "IsEnable" ) ) ;
comboBoxOption.DataBindings .Add ( new Binding( "SelectedIndex" , s, "Option" ) ) ;
textBoxDecData.DataBindings .Add ( new Binding( "Text" , s, "DecimalData" ) ) ;
textBoxHexData.DataBindings .Add ( new Binding( "Text" , s, "HexData" ) ) ;
}
}
[ StructLayout( LayoutKind.Sequential , Pack = 1 ) ]
struct Setting
{
public byte control;
public byte data1;
public byte data2;
public bool IsEnable
{
get
{
return ( control & 0x80 ) == 0 ? false : true ;
}
}
public int Option
{
get
{
return ( control & 0x60 ) >> 5 ;
}
}
public int DecimalData
{
get
{
return data1;
}
}
public string HexData
{
get
{
return data2.ToString ( "X02" ) ;
}
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkNvbXBvbmVudE1vZGVsOwp1c2luZyBTeXN0ZW0uRGF0YTsKdXNpbmcgU3lzdGVtLkRyYXdpbmc7CnVzaW5nIFN5c3RlbS5MaW5xOwp1c2luZyBTeXN0ZW0uVGV4dDsKdXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgU3lzdGVtLldpbmRvd3MuRm9ybXM7CnVzaW5nIFN5c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlczsKCm5hbWVzcGFjZSBXaW5kb3dzRm9ybXNBcHBsaWNhdGlvbjEKewogICAgcHVibGljIHBhcnRpYWwgY2xhc3MgRm9ybTEgOiBGb3JtCiAgICB7CiAgICAgICAgcHVibGljIEZvcm0xKCkKICAgICAgICB7CiAgICAgICAgICAgIEluaXRpYWxpemVDb21wb25lbnQoKTsKCiAgICAgICAgICAgIEluaXREYXRhKG5ldyBieXRlW10geyAweEMwLCAweEFCLCAweENEIH0pOwogICAgICAgIH0KCgogICAgICAgIHZvaWQgSW5pdERhdGEoYnl0ZVtdIHJhd0RhdGEpCiAgICAgICAgewogICAgICAgICAgICBHQ0hhbmRsZSBoYW5kbGUgPSBHQ0hhbmRsZS5BbGxvYyhyYXdEYXRhLCBHQ0hhbmRsZVR5cGUuUGlubmVkKTsKICAgICAgICAgICAgU2V0dGluZyBzID0gKFNldHRpbmcpTWFyc2hhbC5QdHJUb1N0cnVjdHVyZShoYW5kbGUuQWRkck9mUGlubmVkT2JqZWN0KCksIHR5cGVvZihTZXR0aW5nKSk7CgogICAgICAgICAgICBjaGVja0JveElzRW5hYmxlLkRhdGFCaW5kaW5ncy5BZGQobmV3IEJpbmRpbmcoImNoZWNrZWQiLCBzLCAiSXNFbmFibGUiKSk7CiAgICAgICAgICAgIGNvbWJvQm94T3B0aW9uLkRhdGFCaW5kaW5ncy5BZGQobmV3IEJpbmRpbmcoIlNlbGVjdGVkSW5kZXgiLCBzLCAiT3B0aW9uIikpOwogICAgICAgICAgICB0ZXh0Qm94RGVjRGF0YS5EYXRhQmluZGluZ3MuQWRkKG5ldyBCaW5kaW5nKCJUZXh0IiwgcywgIkRlY2ltYWxEYXRhIikpOwogICAgICAgICAgICB0ZXh0Qm94SGV4RGF0YS5EYXRhQmluZGluZ3MuQWRkKG5ldyBCaW5kaW5nKCJUZXh0IiwgcywgIkhleERhdGEiKSk7CiAgICAgICAgfQoKICAgIH0KCgogICAgW1N0cnVjdExheW91dChMYXlvdXRLaW5kLlNlcXVlbnRpYWwsIFBhY2sgPSAxKV0KICAgIHN0cnVjdCBTZXR0aW5nCiAgICB7CiAgICAgICAgcHVibGljIGJ5dGUgY29udHJvbDsKICAgICAgICBwdWJsaWMgYnl0ZSBkYXRhMTsKICAgICAgICBwdWJsaWMgYnl0ZSBkYXRhMjsKCiAgICAgICAgcHVibGljIGJvb2wgSXNFbmFibGUKICAgICAgICB7CiAgICAgICAgICAgIGdldAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICByZXR1cm4gKGNvbnRyb2wgJiAweDgwKSA9PSAwID8gZmFsc2UgOiB0cnVlOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBwdWJsaWMgaW50IE9wdGlvbgogICAgICAgIHsKICAgICAgICAgICAgZ2V0CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHJldHVybiAoY29udHJvbCAmIDB4NjApID4+IDU7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHB1YmxpYyBpbnQgRGVjaW1hbERhdGEKICAgICAgICB7CiAgICAgICAgICAgIGdldAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICByZXR1cm4gZGF0YTE7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHB1YmxpYyBzdHJpbmcgSGV4RGF0YQogICAgICAgIHsKICAgICAgICAgICAgZ2V0CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHJldHVybiBkYXRhMi5Ub1N0cmluZygiWDAyIik7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0K
compilation info
prog.cs(4,14): error CS0234: The type or namespace name `Data' does not exist in the namespace `System'. Are you missing an assembly reference?
prog.cs(8,24): error CS0234: The type or namespace name `Tasks' does not exist in the namespace `System.Threading'. Are you missing an assembly reference?
prog.cs(9,14): error CS0234: The type or namespace name `Windows' does not exist in the namespace `System'. Are you missing an assembly reference?
Compilation failed: 3 error(s), 0 warnings
stdout