4

VB>NET プロジェクト (2010) に ImageList を含むフォームがあります。これらの画像は、次のように .resx ファイルのフォーム リソースと共にリストに埋め込まれます。

data name="xxxx.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64 プロジェクトをビルド/実行しようとすると、次のようになります。

エラー 23 は有効な Win32 アプリケーションではありません。(HRESULT からの例外: 0x800700C1) 行 XXXX、位置 X...

データタグが閉じる行。

.resx ファイル内の画像の base64 コードを変更すると (一部の「0」を「y」に変更)、プロジェクトはコンパイルされますが、アプリを実行しようとすると、画像がリロードされ、変更が消えます。

このエラーを解決し、プロジェクトをビルドして実行する方法を知っていますか? ありがとう

4

2 に答える 2

4

最初の行の終わり近くにvbj00Lがある場合は、それをvbj0yLに置き換えます。これで問題が解決します。デザイナからフォームを変更するときはいつでもこれを行う必要があります。

于 2011-08-16T16:25:34.880 に答える
0

MS サポート チケットの結果からのニュース。

1.これは、4.0 までの dotnet フレームワークの既知の問題です。4.5で修正されました。 http://blogs.msdn.com/b/visualstudio/archive/2010/06/18/resgen-exe-error-an-attempt-was-made-to-load-a-program-with-an-incorrect- format.aspx?PageIndex=5&CommentPosted=true#commentmessage

2. したがって、以前の dotnet ターゲット フレームワークで「古い」32 ビット vbj00L 値を使用するには、4.5 SDK をインストールするだけです。2a.個別にインストールする必要はありませんでした。4.5をインストールしたVisual Studio VS2012をインストールしました。2b. 4.5 がマシン上にあると、共有コンポーネントである Resgen.exe が、VS2010/net3.5 などの他のスタジオやフレームワークで使用できるようになります。コンパイルは成功します。

3.バグが発生した理由については、整数表現の問題に関係していると思います。

于 2013-04-03T18:38:49.857 に答える