Jag försöker översätta ett kod exempel från C# till VB.NET Om man översätter automatisk med http://www.kamalpatel.net/ConvertCSharp2VB.aspx blir det såhär, hoppas det är till hjälp: HejÖversätta C# kod till VB.NET ????
Det skall bli en Sniffer för Seriell RS232 data.
Använder demo versionen från http://www.hhdsoftware.com/Products/home/serial-port-monitoring-control.html
Där finns exempel som funkar bra för C# men jag vill köra detta i VB.NET eftersom det är det jag kan bäst dock har jag inte arbetat med dll komponenter tidigare..
Har angett en referens till dll filen under references.
C# kod:
private void RefreshDevices()
{
listView1.Items.Clear();
ImageList imlist=new ImageList();
foreach (hhdspmcLib.Device device in sm.Devices)
{
imlist.Images.Add(Icon.FromHandle(device.Icon));
ListViewItem item=new ListViewItem(
new String[] {device.Name,device.Port,device.Present?"Yes":"No",device.OpenedBy},imlist.Images.Count-1);
item.Tag=false;
if (!device.Present)
item.ForeColor=Color.FromKnownColor(KnownColor.GrayText);
listView1.Items.Add(item);
}
listView1.SmallImageList=imlist;
OnRefresh();
}
Min VB kod:
Private Sub RefreshDevices()
Dim imlist As New ImageList()
Dim device As New hhdspmcLib.Device
Dim Nr As Integer
ListView1.Items.Clear()
For Nr = 1 To sm.Devices.Count
Dim item = New ListViewItem
'device.Name,device.Port,device.Present,device.OpenedByend sub,imlist.Images.Count-1)
item.Tag = False
If Not device.Present Then
item.ForeColor = Color.FromKnownColor(KnownColor.GrayText)
ListView1.Items.Add(device.Name) 'item)
End If
Next
ListView1.SmallImageList = imlist
OnRefresh()
End Sub
När jag kör koden får jag ett fel vid raden:
Dim device As New hhdspmcLib.Device
Fel:
Retrieving the COM class factory for component with CLSID {C4D0FDF0-3473-4D2B-ABB4-52E7E96FA24B} failed due to the following error: 80040111.
Detta är dock bara en del av koden.
Länk till fungerande C# exempel.
http://www.tjelvar.org/~daol/pelle/CsharpSample.zip
Länk till min ej kompletta och ej fungerande början på översättning. http://www.tjelvar.org/~daol/pelle/TestSniffer.zip
Skulle bli mycket glad om någon ville kika på min översättning och rätta lite.Sv: Översätta C# kod till VB.NET ????
Private Sub RefreshDevices()
listView1.Items.Clear()
Dim imlist As ImageList = New ImageList()
Dim device As hhdspmcLib.Device
For Each device In sm.Devices
imlist.Images.Add(Icon.FromHandle(device.Icon))
ListViewItem item=New ListViewItem(
New String()
{
device.Name,device.Port,device.Present?"Yes":"No",device.OpenedBy
}
,imlist.Images.Count-1)
item.Tag=False
If Not device.Present Then
item.ForeColor=Color.FromKnownColor(KnownColor.GrayText)
End If
listView1.Items.Add(item)
Next
listView1.SmallImageList=imlist
OnRefresh()
End Sub
/Johan
Sv:Översätta C# kod till VB.NET ????
Tack nu löste det sig.
Jag trodde man inte behövde
For Each device In sm.Devices
så jag skrev på ett annat sätt som tydligen inte funkade.
Bra länk dock var det en del enklare grejer den inte klarar av men bra grej för stora projekt då det tar tid att pilla själv.