Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Ich habe mir SFML.NET 2.2 runtergeladen, ein neues Konsolen-Projekt erstellt und die vier Libs verwiesen und dann im Main-Module das geschrieben:
C#-Quelltext
1
2
3
4
5
6
7
8
using System;using System.Collections.Generic;using System.Linq;using System.Text;using SFML.Audio;using SFML.Graphics;using SFML.System;using SFML.Window;
namespace sfmltest{ class Program { staticvoid Main(string[] args) { // Create the main window RenderWindow app = new RenderWindow(new VideoMode(800, 600), "SFML window"); app.Closed += new EventHandler(OnClose);// Load a sprite to display Image image = new Image("maxi.jpg"); Sprite sprite = new Sprite(new Texture(image));// Start the game loop while (app.IsOpen) { // Process events app.DispatchEvents();// Clear screen app.Clear(Color.Blue);// Draw the sprite app.Draw(sprite);// Update the window app.Display(); } }staticvoid OnClose(object sender, EventArgs e) { // Close the window when OnClose event is received RenderWindow window = (RenderWindow)sender; window.Close(); } }}
(Sorry, aber irgendwie kann man den Code hier nicht besser formatieren )
Es werden auch keine Fehler angezeigt wenn man das Programm aber starten will kommt das:
Du hast ein AnyCPU or x64 Projekt erstellt und benutzt 32-Bit-DLLs (oder gar keine) von SFML. Wahlweise hast Du ein x86-Projekt und 64-Bit-DLLs. Die .Net-Variante von SFML braucht nicht nur die .Net-DLLs, sondern auch die passenden Standard-SFML-DLLs.
Ja, man brauch zusätzlich zu den .NET-DLLs von SFML auch noch die normalen C++ DLLs von SFML, denn diese werden von den .NET-DLLs benutzt. Wenn die nicht da sind, ist das ein Problem.
Du musst die nicht als Verweise hinzufügen, das wird auch gar nicht gehen. Sie müssen nur an die richtige Stelle kopiert werden.
1.0, 1.1 oder 1.2? Ich weiß nicht so recht was du damit meinst. SFML ist Version 2.2, welche SFML.Net Version Du hast, das weiß ich nicht.
In deinen Debug/Release Ordner, das war schon richtig. Wichtig ist aber nicht dass du ein x64 System hast sondern dass du auch so eine Anwendung erstellst. Guck mal in die Projekteigenschaften in Visual Studio (Rechtsklick auf das Projekt -> Eigenschaften). Dann fügst du die passenden SFML.Net Bibliotheken als Verweis hinzu und kopierst die zusätzlichen SFML Bibliotheken in den jeweiligen Ordner. Dann sollte es funktionieren.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“