Eine Follow-up zu: OpenGL4Net WM_PAINT does not exist?OpenGL4Net System.BadImageFormatException
Ich bin nach wie vor eng folgende: https://sourceforge.net/p/ogl4net/wiki/Tutorials
Das Programm, wie es derzeit steht:
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Windows.Forms;
using OpenGL4NET;
namespace pads2
{
class Program : Form
{
private const int WM_PAINT = 15;
RenderingContext rc;
static void Main(string[] args)
{
Program program = new Program();
program.Init();
Application.Run(program);
}
// required for open GL
void Init()
{
rc = RenderingContext.CreateContext(this);
SetStyle(ControlStyles.AllPaintingInWmPaint, true);
}
void Render()
{
gl.Clear(GL.COLOR_BUFFER_BIT);
// here is the right place to draw all your scene
rc.SwapBuffers();
}
// change window size
protected override void OnSizeChanged(EventArgs e)
{
gl.Viewport(0, 0, ClientSize.Width, ClientSize.Height);
// projection matrix may also need adjusting
}
// required for open GL
protected override void WndProc(ref Message m)
{
switch (m.Msg)
{
case WM_PAINT: Render(); break;
default: base.WndProc(ref m); break;
}
}
}
}
Q: Unter der Voraussetzung, dass ich Wenn Sie das Tutorial richtig implementieren, was kann ich bei dem Fehler System.BadImageFormatException
on line program.Init();
tun?
Zusätzlich:
Zusätzliche Informationen: Die Datei oder Assembly laden 'OpenGL4Net, Version = 4.3.37.24, Culture = neutral, PublicKeyToken = null' oder einem seiner Abhängigkeiten. Es wurde versucht, ein Programm mit dem falschen Format zu laden.
Dies aufgrund der Warnung sein könnte:
eine Diskrepanz zwischen der Prozessorarchitektur des Projektes Es war „MSIL“ und die Prozessorarchitektur der Referenz „OpenGL4Net“, "gebaut AMD64 ". Diese Nichtübereinstimmung kann Laufzeitfehler verursachen. Bitte beachten Sie, dass Sie die Zielprozessorarchitektur Ihres Projekts durch den Konfigurationsmanager ändern müssen, um die Prozessorarchitekturen zwischen Ihrem Projekt und Referenzen auszurichten, oder nehmen Sie eine Abhängigkeit von Referenzen mit einer Prozessorarchitektur, die der Zielprozessorarchitektur Ihres entspricht Projekt.
jedoch nach:
How do I fix the Visual Studio compile error, "mismatch between processor architecture"?
Dies sollte kein Problem sein. Es gibt nur die Option von (32 oder 64) Bit beim Herunterladen der OpenGL4Net DLL.
Da Microsoft Intermediate Language nicht mit einem Prozessor identisch ist, habe ich versucht, im Release-Modus statt im Debug-Modus zu laufen, aber das macht keinen Unterschied.
Es war in "Debug" (nach "Freigabe" versucht) und "Any CPU". Ich habe gerade eine spezielle "64-Bit-CPU" in der Build-Konfiguration erstellt und es hat funktioniert! Es scheint, dass VS nicht auf den CPU-Typ voreingestellt ist, auf den Ihre CPU und Ihr Betriebssystem eingestellt sind. | Discworld - Sam Vimes - "Es war so eine Erleichterung, recht zu haben, obwohl du wusstest, dass du nur dort bist, indem du jeden möglichen Weg versucht hast, falsch zu liegen." – alan2here