重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

同じような質問がないか検索したのですが、ないようなので質問させてもらいます。

Visual C++2010 Expressを使ってプログラムを書いている、アプリケーション作成初心者です。

デバッグが一区切りしたため、リリース版でビルドし実行したところ、コンストラクターの
内部で、下記のエラーが発生しました。

”アプリケーションのコンポーネントで、ハンドルされていない例外が発生しました。”
”使用されたパラメータが有効ではありません”

デバッグ版では、発生しません。
エラーが発生するコードは、以下の行です。

InitializeComponent();
Blank = gcnew Bitmap("Blank.png");

この、Bitmapをgcnewする行で、上記のエラーウィンドウが表示されます。

ビルドパラメータは、リンカ入力の追加の依存ファイルに"Wsock32.lib"が指定されています。
他は、変更していません。

メモリの問題でしょうか?
よろしくお願い致します。

A 回答 (2件)

No1 ちょっと補足しておきます


>実行ファイルと画像ファイルを同じフォルダーにしないとだめ!!!!
>という結論でした。
これはちょっと違います
ファイル名だけしか書いてないと現在のカレントフォルダからそのファイルを探します

実行モジュールと同じフォルダにおいておいても実行モジュールのショートカット作って
作業フォルダを別のフォルダに指定したりするとやはり同様のエラーが出るはずです
そういったことにならないように実行モジュールのフォルダと
同じフォルダから読み込むとか対処していた方が好ましいと思われます
GetModuleFileName
_tsplitpath_s
_tmakepath_s
の各関数を使えば実現できます(関数詳細はリファレンスで調べてください)
    • good
    • 0

確認したわけではありません


コンパイルオプションの変更で実行モジュールが生成されるフォルダが変わって
Blank.png が同じフォルダに無いとかいう話と違いますか?
    • good
    • 0
この回答へのお礼

お恥ずかしい話でしたが、おっしゃるとおりでした。

デバッグしているフォルダーと、リリース版が存在するフォルダーが違っていて
該当ファイルをリリース版が存在するフォルダーにコピーしたところ
すんなり、動きました。

実行ファイルと画像ファイルを同じフォルダーにしないとだめ!!!!
という結論でした。

初心者の馬鹿な質問に回答頂き、感謝しております。
ありがとうございました。

お礼日時:2013/11/14 18:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

今、見られている記事はコレ!