はじめまして。
VC++を用いて画像を提示しようとしていたのですが、ランタイムエラーが発生してしまい
ました。
ちなみにランタイムエラーは実行中に起こります。
エラーは以下のようにでます。
追加情報: ランタイムの重大なエラーが発生しました。エラーのアドレスは
0x656f6ac7、スレッド 0xaa0 です。エラー コードは 0xc0000005 です。これは CLR の
バグであるか、またはユーザー コードのアンセーフまたは確認不可能な部分にバグがあ
る可能性があります。このバグの一般的な原因には、スタックが壊れる可能性のある
COM-interop または PInvoke のユーザー マーシャリング エラーが含まれています。
'System.ExecutionEngineException' のハンドルされていない例外が
System.Drawing.dll で発生しました。
プログラム '[2624] kisai.exe: マネージ (v4.0.30319)' はコード -2146233082
(0x80131506) で終了しました。
VC++に関してはまったくの初心者です。
皆様のお知恵を貸していただければと思います。
なにとぞよろしくお願いします。
すみません。
自分の使っているのは Microsoft Visual C++ 2010 Express です。
よろしくお願いします。
ん?
System.Drawing.dllてことは .NET Frameworkかな?
僕は.NET Frameworkは分からないけど何を使っているのか書いたほうがいいですね。
VC2008 ExpressからプラットフォームSDKも使えましたよね。
ご返答ありがとうございます。
申しわけありませんが、本当に初心者でしてそれ自体がどこに記載されているのかわから
ないです。
お手数をおかけいたしますが、どこに記載されているのか教えていただけませんか?
VC++2008を用いた際はまたPC自体のエラーが発生いたしまして(現在どんなエラーをは
いたのか忘れました)、VC2010へ変更いたしました。
今現在それを使えるかは、把握していない状態です。
すみません。
>申しわけありませんが、本当に初心者でしてそれ自体がどこに記載されているのかわから
ないです。
どのようにプロジェクト(ソリューション)を作成しましたか?
ソースコードの拡張子とかもヒントになるかも知れません。
# .NET Frameworkは同じく判らないので具体的なところは不明…
たいへんわかりやすいです!ありがとうございます。
ソースコードの拡張子は .cpp です。
ソースの部分ですが、Visual C++ の Windows フォーム アプリケーション で作成いた
しました。
そこからフォームを用いて、プログラムを作成いたしました。
という、回答で大丈夫でしょうか?
足りない点はありますか?
'kisai.exe' (マネージ (v4.0.30319)): 'C:\Windows\Microsoft.Net\assembly\GAC_32
\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll' が読み込まれました
'kisai.exe' (マネージ (v4.0.30319)): 'C:\Users\Owner\Documents\Visual Studio
2010\Projects\kisai - コピー - コピー\Debug\kisai.exe が読み込まれました。シン
ボルが読み込まれました。
'kisai.exe' (マネージ
(v4.0.30319)): 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Windows.Forms
\v4.0_4.0.0.0__b77a5c561934e089\System.Windows.Forms.dll' が読み込まれました
'kisai.exe' (マネージ
(v4.0.30319)): 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Drawing\v4.0_
4.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll' が読み込まれました
'kisai.exe' (マネージ
(v4.0.30319)): 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0_
_b77a5c561934e089\System.dll' が読み込まれました
プログラム '[4360] kisai.exe: マネージ (v4.0.30319)' はコード -2146233082
(0x80131506) で終了しました。
・・・わからなかったので、これをのせます!
デバックした際の表示されたものです。
これをのせても意味があるかわかりませんが、よろしくお願いします。
>> VC++を用いて画像を提示しようとしていたのですが
どういう処理を書いてるか分からない(>_<;)
画像はPictureBox貼り付けてImageで画像指定して表示ですか?
どこのHPを参考にして書いたとかいうのがあれば、
回答付きやすいと思います。
みいさん、発言ありがとうございます。
先ほどまでvc++と言いましたが、
コンソールアプリケーションではなく、
フォームアプリケーションで書いています。
エラーの場所からすると、なにやらgcnewというnew演算子が関係しているらしいので
す・・・
gcnewの使用箇所なのですが、
Application::Run(gcnew Form1());
でフォームを実行するところと、
みぃさんの指摘でありました、
MyImage=gcnew Bitmap(fileToDisplay);
pictureBox1->Image=MyImage;
でbitmap形式にした画像を格納する箇所の2点です。
ちなみに、2つ目のgcnewはループで計360回、回す予定です^^;;
いまは、30~40回ほど回すとエラー吐きます。
> MyImage=gcnew Bitmap(fileToDisplay);
> pictureBox1->Image=MyImage;
> でbitmap形式にした画像を格納する箇所の2点です。
>
>
> ちなみに、2つ目のgcnewはループで計360回、回す予定です^^;;
> いまは、30~40回ほど回すとエラー吐きます。
こーゆー使い方するなら1回目のループ以外はgcnewの前にdelete入れといた
方が安全と思います。
gcnewは勝手に解放してくれるけど、いつ解放してくれるか分かんないからねー。
早いご返答ありがとうございます。
さっそくおこなってみます!!
ちょっと気になったので書いておきます。
ご本人が何を目的にやっておられるかで話がちょっと変わりそうな気がします。
まず、C++を使ったウインドウを表示するプログラムを作成したいのであれば、
フォームアプリケーションでは目的に合っていません。
フォームアプリケーションはC++/CLIと言うC++とは別の言語を使った物になります。
.NET Frameworkを使ったプログラミングになるので一般に言うVC++でMFCを使った
ウインドウプログラミングとは別物になります。
.NET Frameworkを使ったプログラミングを勉強したいのであれば良いのですが、
そうでない場合は方向が違う事になります。
Microsoft Visual C++ 2010 ExpressではMFCを使ったC++によるウインドウを
表示するプログラムは作成できません。MFCを使わずにWin32APIを使った物なら
作成できますが、MFCを使ったC++でと言う話なら有料の開発環境が必要になります。
ウインドウを表示するプログラムが作りたくて.NET Frameworkを使ったものでOKなら
Microsoft Visual C# 2010 Expressの方がとっつきやすいのではと言う気もします。
C++/CLIはあまり資料が豊富とはいえないのである程度C++とか.NET Frameworkの知識を
もっていないと難しい気もしますし、C++/CLIを覚えてもC++を覚えた事にはならないので
目的をはっきりさせた上でないとお勧めしかねます。
Expressはただで手に入るので助かるのですけれど、
色々と制約が有りますのでそれを理解した上で使わないと目的から外れる事になります。
レスのやり取り拝見させていただきました。
質問者の方は、ランタイムを意識していますでしょうか?
ただプログラミングを習得したくて簡単・安易に入手可能だった
「Microsoft Visual C++ 2010 Express 」だけじゃないでしょうか
一度本屋さんに行って立ち読み程度で良いのでいろいろなプログラミング言語の
入門書をみて自分の使いやすそうな入門書の通り、環境設定からプログラミング
の勉強をなさったらどうでしょうか?
それぞれ言語特有の用語をある程度、意識できるようになってから質問
したほうが、回答者も意図をくんだ回答をしてくれるようになると思います。
ちょっと訂正
>「Microsoft Visual C++ 2010 Express 」だけじゃないでしょうか(誤)
「Microsoft Visual C++ 2010 Express 」入手しただけじゃないでしょうか(正)
本題
自動的に生成されたソースプログラムファイルで「Form1.h」と言うファイル
ありますか
もしあってソースの先頭の方に
------ 略 ------
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
------ 略 ------
こんな感じの記述ありますか、あればまぎれもなく「.NET Framework」の物です。
これだとVC++と「.NET Framework」が混在し入門者には習得が難しいと思います。
C#あたりの入門書の方をお勧めします。