2016-08-08 2 views
0

Aにフォローアップ:私はまだ密接に次のです OpenGL4Net WM_PAINT does not exist?OpenGL4Net System.BadImageFormatException

https://sourceforge.net/p/ogl4net/wiki/Tutorials

プログラム、それが現在立っているよう:

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:提供私はあることをチュートリアルを正しく実装すると、エラーSystem.BadImageFormatExceptionprogram.Init();)で何ができますか?さらに

追加情報:ファイルまたはアセンブリ 'OpenGL4Net、= 4.3.37.24 バージョン、カルチャニュートラル、PublicKeyToken = = null' またはその 依存関係の1つをロードできませんでした。間違った 形式のプログラムをロードしようとしました。

これが原因の警告である可能性があり:「MSIL」を建設中プロジェクト のプロセッサアーキテクチャおよびリファレンス 「OpenGL4Net」のプロセッサアーキテクチャの間に不一致があった

、 " AMD64 "この不一致は、実行時の障害を引き起こす可能性があります。 プロジェクトのターゲットプロセッサアーキテクチャをConfiguration Managerで変更して、 アーキテクチャをプロジェクトと参照の間に配置するか、または と一致するプロセッサアーキテクチャの参照に依存する を使用してください。プロジェクト。しかしに従って

How do I fix the Visual Studio compile error, "mismatch between processor architecture"?

これは問題にはなりません。 OpenGL4Net DLLをダウンロードするときには、(32または64)ビットのオプションしかありません。

Microsoft Intermediate Languageはプロセッサと同じではないため、デバッグモードではなくリリースモードで実行しようとしましたが、違いはありません。

答えて

1

コンパイル時に使用するビルド構成は何ですか? OpenGL4Netのどのバージョンをダウンロードしましたか? 32または64ビットバージョン?

OpenGL4Netのダウンロードに応じて、参照アセンブリの意図したターゲットCPUと一致するビルド構成を設定してください(32ビットまたは64ビットのいずれか)。

詳細な説明はC# compiling for 32/64 bit, or for any cpu?を参照してください。

+0

「デバッグ」(「リリース」を試した)と「任意のCPU」にありました。私はちょうどビルドの設定で具体的に "64ビットCPU"を作成し、それは働いた!あなたのCPUとOSが設定されているCPUの種類は、VSがデフォルトになっていないようです。 | Discworld - Sam Vimes - 「間違っている可能性のあるあらゆる方法を試してみてください」 – alan2here

関連する問題