Terminator2
Erfahrenes Mitglied
Hallo,
Habe im Internet ein dshow Projekt gefunden und muss dieses in Visual Basic konvertieren, da ich sonst einfach gar nichts vom Quellcode verstehe.
Jetzt habe ich soweit die einzelnen Module und Namespaces konvertiert. Allerdings bleiben einen Haufen Fehlermeldungen über, wo ich bei folgenden absolut keine Ahnung habe, wie ich das lösen könnte:
Fehlermeldung:
"end of-Anweisung erwartet"
Fehlermeldung:
"Class "MotionDetector2" muss "Property MotionLevelCalculation() As Boolean" für die IMotionDetector-Schnittstelle implementieren. Die implementierende Eigenschaft muss übereinstimmende ReadOnly- oder WriteOnly-Spezifizierer aufweisen."
"Class "MotionDetector2" muss "ReadOnly Property MotionLevel() As Double" für die IMotionDetector-Schnittstelle implementieren. Die implementierende Eigenschaft muss übereinstimmende ReadOnly- oder WriteOnly-Spezifizierer aufweisen."
"Class "MotionDetector2" muss "Sub ProcessFrame(ByRef image As System.Drawing.Bitmap)" für die IMotionDetector-Schnittstelle implementieren. "
"Fehler 9 Class "MotionDetector2" muss "Sub Reset()" für die IMotionDetector-Schnittstelle implementieren."
Fehlermeldung:
"Public Event Alarm(sender As Object, e As System.EventArgs)" ist ein Ereignis und kann nicht direkt aufgerufen werden. Verwenden Sie eine RaiseEvent-Anweisung, um ein Ereignis aufzurufen.
Und noch eine Warnung:
"property "AutoSize" führt Shadowing für eine überschreibbare Methode in Basis-class "Control" durch. Wenn Sie die Basismethode überschreiben möchten, muss die Methode als "Overrides" deklariert werden."
Wäre echt toll, wenn mir da jemand weiterhelfen könnte
Habe im Internet ein dshow Projekt gefunden und muss dieses in Visual Basic konvertieren, da ich sonst einfach gar nichts vom Quellcode verstehe.
Jetzt habe ich soweit die einzelnen Module und Namespaces konvertiert. Allerdings bleiben einen Haufen Fehlermeldungen über, wo ich bei folgenden absolut keine Ahnung habe, wie ich das lösen könnte:
Fehlermeldung:
"end of-Anweisung erwartet"
Code:
Dim ptr As Byte* = CByte(data.Scan0.ToPointer())
'Der Typ Byte* ist mir nicht bekannt und funktioniert auch nicht...
For y As Integer = 0 To height - 1
Dim x As Integer = 0
While x < width
count += ((*ptr) >> 7)
x += 1
ptr += 1
End While
ptr += offset
Next
Fehlermeldung:
"Class "MotionDetector2" muss "Property MotionLevelCalculation() As Boolean" für die IMotionDetector-Schnittstelle implementieren. Die implementierende Eigenschaft muss übereinstimmende ReadOnly- oder WriteOnly-Spezifizierer aufweisen."
"Class "MotionDetector2" muss "ReadOnly Property MotionLevel() As Double" für die IMotionDetector-Schnittstelle implementieren. Die implementierende Eigenschaft muss übereinstimmende ReadOnly- oder WriteOnly-Spezifizierer aufweisen."
"Class "MotionDetector2" muss "Sub ProcessFrame(ByRef image As System.Drawing.Bitmap)" für die IMotionDetector-Schnittstelle implementieren. "
"Fehler 9 Class "MotionDetector2" muss "Sub Reset()" für die IMotionDetector-Schnittstelle implementieren."
Code:
Namespace motion
Public Class MotionDetector2
Implements IMotionDetector
'Wenn man einfach die Implementierung entfernt, ist der Fehler weg, aber sicherlich funktioniert dann das Programm auch nicht...
Fehlermeldung:
"Public Event Alarm(sender As Object, e As System.EventArgs)" ist ein Ereignis und kann nicht direkt aufgerufen werden. Verwenden Sie eine RaiseEvent-Anweisung, um ein Ereignis aufzurufen.
Code:
Imports System
Imports System.Drawing
Imports System.Threading
Imports VideoSource
Namespace motion
Public Class Camera
Public Event Alarm As EventHandler
Private Sub video_NewFrame(ByVal sender As Object, ByVal e As CameraEventArgs)
If (motionDetecotor.MotionLevel >= alarmLevel) AndAlso (Alarm IsNot Nothing) Then
Alarm(Me, New EventArgs())
End If
End If
Und noch eine Warnung:
"property "AutoSize" führt Shadowing für eine überschreibbare Methode in Basis-class "Control" durch. Wenn Sie die Basismethode überschreiben möchten, muss die Methode als "Overrides" deklariert werden."
Code:
Namespace motion
Public Class CameraWindow
Inherits System.Windows.Forms.Control
Private m_camera As Camera = Nothing
Private m_autosize As Boolean = False
Private needSizeUpdate As Boolean = False
Private firstFrame As Boolean = True
Private timer As System.Timers.Timer
Private flash As Integer = 0
Private rectColor As Color = Color.Black
' AutoSize property
<DefaultValue(False)> _
Public Property AutoSize() As Boolean
Get
Return m_autosize
End Get
Set(ByVal value As Boolean)
m_autosize = value
UpdatePosition()
End Set
End Property
Wäre echt toll, wenn mir da jemand weiterhelfen könnte

Zuletzt bearbeitet: