Hallo,
ich habe einen Code in C# gefunden der über DirectX ein Overlay in einem Spiel anzeigen lässt. Ich startete das Projekt in C# und es funktionierte problemlos. Nun habe ich versucht den Code mittels übersetzer in Vb.net zu Konvertieren und es kommen Fehler wo ich nicht genau weiß wie ich diese beheben soll. Ich hänge mal die funktionierende Program.cs dem Anhang an. (Für das Projekt brauch man das Nuget-Paket GameOverlay.Net)
Dies ist mein Code den ich in vb.net Übersetzt habe:
Als Fehler kommen:
Fehler BC30064 'ReadOnly-Variable kann nicht das Ziel einer Zuweisung sein. Ark.Auto.PlayerCount C:\Users\XXX\source\repos\Ark.Auto.PlayerCount\Ark.Auto.PlayerCount\frmMain.vb 20 Aktiv
Und
Fehler BC32022 "Public Event SetupGraphics As EventHandler(Of SetupGraphicsEventArgs)" ist ein Ereignis und kann nicht direkt aufgerufen werden. Verwenden Sie eine RaiseEvent-Anweisung, um ein Ereignis aufzurufen. Ark.Auto.PlayerCount C:\Users\XXX\source\repos\Ark.Auto.PlayerCount\Ark.Auto.PlayerCount\frmMain.vb 40 Aktiv
Ich hoffe jemand kann mir helfen. Evetuell ja jemand der sich ein wenig mit C# auskennt.
Liebe grüße,
Daniel
*Topic verschoben*
ich habe einen Code in C# gefunden der über DirectX ein Overlay in einem Spiel anzeigen lässt. Ich startete das Projekt in C# und es funktionierte problemlos. Nun habe ich versucht den Code mittels übersetzer in Vb.net zu Konvertieren und es kommen Fehler wo ich nicht genau weiß wie ich diese beheben soll. Ich hänge mal die funktionierende Program.cs dem Anhang an. (Für das Projekt brauch man das Nuget-Paket GameOverlay.Net)
Dies ist mein Code den ich in vb.net Übersetzt habe:
VB.NET-Quellcode
- Imports System
- Imports System.Collections.Generic
- Imports GameOverlay.Drawing
- Imports GameOverlay.Windows
- Imports SharpDX.Direct2D1
- Public Class frmMain
- Private ReadOnly _window As GraphicsWindow
- Private ReadOnly _graphics As Graphics
- Private ReadOnly _brushes As Dictionary(Of String, SolidBrush)
- Private ReadOnly _fonts As Dictionary(Of String, Font)
- Private ReadOnly _images As Dictionary(Of String, GameOverlay.Drawing.Image)
- Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- End Sub
- Public Sub GraphicsWindowTest()
- _brushes = New Dictionary(Of String, SolidBrush)()
- _fonts = New Dictionary(Of String, Font)()
- _images = New Dictionary(Of String, GameOverlay.Drawing.Image)()
- _graphics = New Graphics() With {
- .MeasureFPS = True,
- .PerPrimitiveAntiAliasing = True,
- .TextAntiAliasing = True,
- .UseMultiThreadedFactories = False,
- .VSync = False,
- .WindowHandle = IntPtr.Zero
- }
- _window = New GraphicsWindow(_graphics) With {
- .IsTopmost = True,
- .IsVisible = True,
- .FPS = 30,
- .X = 0,
- .Y = 0,
- .Width = 200,
- .Height = 25
- }
- _window.SetupGraphics += _window_SetupGraphics()
- _window.DestroyGraphics += _window_DestroyGraphics()
- _window.DrawGraphics += _window_DrawGraphics()
- End Sub
- Class SurroundingClass
- Protected Overrides Sub Finalize()
- End Sub
- Public Sub Run()
- _window.Create()
- Console.WriteLine(_window.Handle.ToString("X"))
- End Sub
- Public Sub Join()
- _window.Join()
- End Sub
- Public Sub [Stop]()
- _window.Dispose()
- _graphics.Dispose()
- End Sub
- Public Sub ReCreate()
- _window.Recreate()
- End Sub
- End Class
- Private Sub _window_SetupGraphics(ByVal sender As Object, ByVal e As SetupGraphicsEventArgs)
- Dim gfx = e.Graphics
- _brushes("black") = gfx.CreateSolidBrush(0, 0, 0)
- _brushes("white") = gfx.CreateSolidBrush(255, 255, 255)
- _brushes("background") = gfx.CreateSolidBrush(0, &H27, &H31, 255.0F * 0.8F)
- Console.WriteLine(_window.Handle.ToString("X"))
- If e.RecreateResources Then Return
- _fonts.Add("arial", gfx.CreateFont("Arial", 12))
- End Sub
- Private Sub _window_DestroyGraphics(ByVal sender As Object, ByVal e As DestroyGraphicsEventArgs)
- For Each pair In _brushes
- pair.Value.Dispose()
- Next
- For Each pair In _fonts
- pair.Value.Dispose()
- Next
- For Each pair In _images
- pair.Value.Dispose()
- Next
- End Sub
- Private Sub _window_DrawGraphics(ByVal sender As Object, ByVal e As DrawGraphicsEventArgs)
- Dim gfx = e.Graphics
- gfx.ClearScene(_brushes("background"))
- gfx.DrawText(_fonts("arial"), 15, _brushes("white"), 5, 5, $"677: 70/70")
- Dim device = TryCast(gfx.GetRenderTarget(), WindowRenderTarget)
- Dim factory = gfx.GetFactory()
- Dim geometry = New PathGeometry(factory)
- Dim sink = geometry.Open()
- sink.SetFillMode(FillMode.Winding)
- sink.BeginFigure(New SharpDX.Mathematics.Interop.RawVector2(200, 200), FigureBegin.Filled)
- sink.AddLine(New SharpDX.Mathematics.Interop.RawVector2(300, 200))
- sink.AddArc(New ArcSegment() With {
- .ArcSize = ArcSize.Small,
- .Point = New SharpDX.Mathematics.Interop.RawVector2(300, 300),
- .RotationAngle = 0.0F,
- .Size = New SharpDX.Size2F(16.0F, 16.0F),
- .SweepDirection = SweepDirection.Clockwise
- })
- sink.AddLine(New SharpDX.Mathematics.Interop.RawVector2(200, 300))
- sink.AddArc(New ArcSegment() With {
- .ArcSize = ArcSize.Small,
- .Point = New SharpDX.Mathematics.Interop.RawVector2(200, 200),
- .RotationAngle = 0.0F,
- .Size = New SharpDX.Size2F(16.0F, 16.0F),
- .SweepDirection = SweepDirection.Clockwise
- })
- sink.EndFigure(FigureEnd.Open)
- sink.Close()
- sink.Dispose()
- Dim options = New LayerParameters() With {
- .GeometricMask = geometry
- }
- Dim layer = New Layer(device, New SharpDX.Size2F(gfx.Width, gfx.Height))
- device.PushLayer(options, layer)
- gfx.FillRectangle(_brushes("white"), 100, 100, 400, 400)
- device.PopLayer()
- layer.Dispose()
- geometry.Dispose()
- End Sub
- End Class
Als Fehler kommen:
Fehler BC30064 'ReadOnly-Variable kann nicht das Ziel einer Zuweisung sein. Ark.Auto.PlayerCount C:\Users\XXX\source\repos\Ark.Auto.PlayerCount\Ark.Auto.PlayerCount\frmMain.vb 20 Aktiv
Und
Fehler BC32022 "Public Event SetupGraphics As EventHandler(Of SetupGraphicsEventArgs)" ist ein Ereignis und kann nicht direkt aufgerufen werden. Verwenden Sie eine RaiseEvent-Anweisung, um ein Ereignis aufzurufen. Ark.Auto.PlayerCount C:\Users\XXX\source\repos\Ark.Auto.PlayerCount\Ark.Auto.PlayerCount\frmMain.vb 40 Aktiv
Ich hoffe jemand kann mir helfen. Evetuell ja jemand der sich ein wenig mit C# auskennt.
Liebe grüße,
Daniel
*Topic verschoben*
Liebe Grüße,
C.O.D.E
Testautomatisierung (TA):
C.O.D.E
Testautomatisierung (TA):
5%
Du findest meinen Beitrag Hilfreich? Dann drück auf Hilfreich!
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Marcus Gräfe“ ()