Hi, ich bin relativ neu im umgang mit dll's und bräuchte hier ein wenig hilfe...
und zwar habe ich den unteren Code in VB6 den ich gerne in vb.Net umgeschrieben hätte.
Da liegt auch nicht unbedingt das Problem, der code unterscheidet sich ja kaum, es geht eher um das me.hdc...
--> Was bedeutet es?
--> Was macht man damit
--> Wie Kann ich es unter :net erstellen/benutzen/damit umgehen?
Bisher habe ich es folgendermaßen übersetzt, wobei das hdc natürlich bisher leider unbehandelt ist.:
Vielen Dank für ihre Antwort.
VB.Net Code
Private Ramp1(0 To 255, 0 To 2) As Integer
Private Ramp2(0 To 255, 0 To 2) As Integer
Dim a As Integer, b As Integer
Dim varAbdunkeln As Boolean
Dim varStart As Boolean
Public varHDC As Integer
Private Declare Function GetDeviceGammaRamp Lib "gdi32" (ByVal hdc As Long, _
ByVal lpv As Integer) As Long
Private Declare Function SetDeviceGammaRamp Lib "gdi32" (ByVal hdc As Long, _
ByVal lpv As Integer) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (ByVal _
Destination As Integer, ByVal Source As String, ByVal Length As Long)
Public Sub GammaAbdunkeln()
Try
SetDeviceGammaRamp(varHDC, Ramp1(0, 0))
varAbdunkeln = False
Catch eX As System.Exception
MsgBox("Abdunkeln" & eX.ToString())
End Try
End Sub
Public Sub GammaAufhellen()
Try
'On Error Resume Next
Dim iCtr As Integer
Dim lVal As Long
For iCtr = 0 To 255
lVal = Int2Lng(Ramp1(iCtr, 0))
Ramp2(iCtr, 0) = Lng2Int(Int2Lng(Ramp1(iCtr, 0)) / b)
Ramp2(iCtr, 1) = Lng2Int(Int2Lng(Ramp1(iCtr, 1)) / b)
Ramp2(iCtr, 2) = Lng2Int(Int2Lng(Ramp1(iCtr, 2)) / b)
Next iCtr
a = a - 2
SetDeviceGammaRamp(varHDC, Ramp2(0, 0))
varAbdunkeln = True
Catch eX As System.Exception
MsgBox("Aufhellen" & eX.ToString())
End Try
End Sub
Private Function Int2Lng(ByVal IntVal As Integer) As Long
CopyMemory(Int2Lng, IntVal, 2)
End Function
Private Function Lng2Int(ByVal Value As Long) As Integer
CopyMemory(Lng2Int, Value, 2)
End Function
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles MyBase.Load
Try
varHDC = 700
If Not varStart = True Then
GetDeviceGammaRamp(varHDC, Ramp1(0, 0))
a = 2
b = 2
varStart = True
MsgBox(varHDC.ToString)
End If
Catch eX As System.Exception
MsgBox("Laden" & eX.ToString())
End Try
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles Button1.Click
If Not varAbdunkeln = True Then
GammaAufhellen()
Else
GammaAbdunkeln()
End If
End Sub VB6 Code
Option Explicit
Private Ramp1(0 To 255, 0 To 2) As Integer
Private Ramp2(0 To 255, 0 To 2) As Integer
Dim a As Integer, b As Integer
Dim varAbdunkeln As Boolean
Dim varStart As Boolean
Private Declare Function GetDeviceGammaRamp Lib "gdi32" (ByVal hdc As Long, lpv _
As Any) As Long
Private Declare Function SetDeviceGammaRamp Lib "gdi32" (ByVal hdc As Long, lpv _
As Any) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" ( _
Destination As Any, Source As Any, ByVal Length As Long)
Public Sub GammaFunktion()
Load frmMain
frmMain.Visible = False
frmMain.Width = 0
frmMain.Height = 0
Start
If Not varAbdunkeln = True Then
GammaAufhellen
Else
GammaAbdunkeln
End If
End Sub
Public Sub GammaAbdunkeln()
SetDeviceGammaRamp frmMain.hdc, Ramp1(0, 0)
varAbdunkeln = False
End Sub
Public Sub GammaAufhellen()
On Error Resume Next
Dim iCtr As Integer
Dim lVal As Long
For iCtr = 0 To 255
lVal = Int2Lng(Ramp1(iCtr, 0))
Ramp2(iCtr, 0) = Lng2Int(Int2Lng(Ramp1(iCtr, 0)) / b)
Ramp2(iCtr, 1) = Lng2Int(Int2Lng(Ramp1(iCtr, 1)) / b)
Ramp2(iCtr, 2) = Lng2Int(Int2Lng(Ramp1(iCtr, 2)) / b)
Next iCtr
a = a - 2
SetDeviceGammaRamp frmMain.hdc, Ramp2(0, 0)
varAbdunkeln = True
End Sub
Private Sub Start()
If Not varStart = True Then
GetDeviceGammaRamp frmMain.hdc, Ramp1(0, 0)
a = 2
b = 2
varStart = True
End If
End Sub
Private Function Int2Lng(IntVal As Integer) As Long
CopyMemory Int2Lng, IntVal, 2
End Function
Private Function Lng2Int(Value As Long) As Integer
CopyMemory Lng2Int, Value, 2
End Function |