• 締切済み

C#:VS2008について

現在VS2008C#で開発を行っています。 そこで、デバッグで実行するとSaveFileDialogの表示時に下記のエラーが発生しています。 "OLE が呼び出される前に、現在のスレッドが Single Thread Apartment (STA) モードに設定されていなければなりません。Main 関数に STAThreadAttribute が設定されていることを確認してください。 この例外はデバッガがプロセスにアタッチされている場合にのみ発生します。" しかし、EXEで実行した場合上記エラーが発生せず、正常にSaveFileDialogが表示されます。 そこで質問なのですが、デバッグで実行した場合と、EXEで実行した場合では何か違いがあるのでしょうか?また、なぜ上記エラーはデバッグ実行時のみ発生しているのでしょうか?回答よろしくお願い致します。

みんなの回答

noname#259269
noname#259269
回答No.1

私も詳しくないのですが(ネット上でも色々議論がなされているようです)、エラーメッセージにあるように、Main 関数に STAThread を付与してください。何かと問題が起きるようです。 [STAThread] static void Main() { --- このサイトの下方「STAThread属性の意味」に説明されています。 一度目を通されてはどうでしょう。 http://dobon.net/vb/dotnet/form/notopenform.html

関連するQ&A

  • MediaCenterが突然起動しなくなった

    WindowsXPのMeida Center立ち上げ時に、他のソフトの削除などしていたら、まったく起動しなくなってしまいました。出てくる表示は、以下のようです。どなたか教えてください。 1.ehshell.exe - 共通言語ランタイム デバッグ サービス   アプリケーションでハンドルできない例外が発生しました。   処理 ID-0xed4 (3796)、スレッド ID-0x4dc (1244) アプリケーションを修了するには[OK]をクリックしてください。  アプリケーションをデバッグするには、[キャンセル]をクリックしてください。 2.[キャンセル]をクリックすると、  登録されたJTデバッガを使用できません。以下のコマンドで、JTデバッガを起動しようとして、エラーコード0x2 (2)が発生しました。コンピュータの設定を確認してください。    cordbg.exe !a 0xed4 デバッガを手動でアタッチする間処理を待機させるには、[再施行]をクリックしてください。  JTデバッガ要求を中止するには、[キャンセル]をクリックしてください。

  • VS22 VC++ デバッグ進まない

    上記でデバッグを実行しようとするとデバッグを開始できません。「プロジェクトのプロパティを開き[構成プロパティ]->[デバッグ]の準に移動してデバッガーの設定を確認してください」というboxが開きます。対処法を教えていただけないでしょうか

  • VS2008 C++ リリースモードでエラー

    表題の環境でMFCベースのプログラムを開発しています。 リリースモードで実行を試したところ、同じようなタイミングで強制終了が発生します。 (おそらく、自前のDLL内で落ちている?) デバッグモードのEXEを直接起動しても、強制終了が発生します。 りかし、VSからリリースモード(当然、デバッグモードも)の実行を行うと、エラーが発生しません。 VSから実行する場合、参照するDLLはVSを使用しない場合とは違うDLLを参照するのでしょうか。 その他、このような状況での対処方法について、アドバイスをいただけませんでしょうか。

  • Windows Up Date で

    SL39F.tmp - 共通言語ランタイム デバッグ サービス アプリケーションで、ハンドルできない例外が発生しました。 処理 ID=0xddc (3548)、スレッド ID=0x350 (848) アプリケーションを終了するには[OK]をクリックしてください。 アプリケーションをデバッグするには、[キャンセル]をクリックしてください。 というものが出て来ます。 OKするとUpDateが終了してしまいます。 キャンセルすると、以下の内容が表示されます。 SL39F.tmp - デバッガが見つかりませんでした。 登録された JIT デバッガを使用できません。以下のコマンドで JIT デバッガを起動しようとして、 エラーコード 0x2(2)が発生しました。 コンピュータの設定を確認してください。 cordbg.exe!a 0xddc デバッガを手動でアタッチする間処理を待機させるには、[再試行を]をクリックしてください。 JIT デバッグ要求を中止するには[キャンセル]をクリックしてください。 となります。 再試行をクリックすると、UpDateが待機状態になります。 どう操作・設定すればいいのかわかりません。 分かる方解決策をどうかお願いします。

  • ケータイサウンドメーカーを起動できない

    ケータイサウンドメーカーをインストールして起動しようとしたら 下記のエラーメッセージがでて起動できません。 「SoumdMaker.exe-共通言語ランタイム デバック サービス アブケーションで、ハンドルできない例外が発生しました。 処理ID:0x64(2660)、スレッドID:0x544(1348)」 「SoumdMaker.exeーデバッガが見つかりました。 登録された、JITデバッガを使用できません。以下のコマンドで、JITデバッガを起動しようとして、 エラーコード0x2(2)が発生しました。コンピューターの設定を確認してください。」 上記のようなコメントが出てくるのですが、コンピューター初心者の私としては、コンピューターの設定を確認の仕方が解りませんし 設定の仕方が解りません。 どなたか 初心者にも解る方法を教えていただけませんか? よろしくお願いいたします。 

  • VC++6の「プロセスへアタッチ」について

    VC++6(MFC無し)で作成したEXEを「プロセスへアタッチ」でデバッグをしたいのですが、通常のデバッグ実行時と同じようにソースを参照しながらのデバッグはできないのでしょうか? 現在、プロセスへアタッチを行うと新たにワークスペースは作成され、ソースがない状態でデバッグ中となってしまいます。

  • MFCに関する質問です。

    みなさん、はじめまして! VC2008でMFCアプリケーションプログラミングを始めて習うものですが、最初にソリューションファイルを作って何も書かない場合でビルドして、デバッグすると白いページが出てきますが、 OpenCVで画像処理の二値化のプログラムを書いて実行したら、ビルドしてエラーは発生しませんが、デバッグしてみると、「OLEの初期化に失敗しました。OLEのライブラリのバージョンが正しいことを確認してください」とのメッセージが出てきて、OKボタンを押すと、何も処理してくれません。 ネット上でいろいろ調べましたが、まだ解決できていません。 MFCについて、まだぜんぜんわからないので、上記のことをどう対処したらいいのかをご指導いただきたいです。 どうぞよろしくお願いします。

  • インターネットをやっていると・・・

    最近インターネットをやってたらこんなエラーメッセージが出ました。 --------------------------- エラー --------------------------- ランタイム エラーが発生しました。 デバッグしますか? 行: 19 エラー: 'document.getElementById(...)' は Null またはオブジェクトではありません。 ---------------------------  はい(Y)  いいえ(N) --------------------------- 「はい」を押してみると・・・ --------------------------- Just-In-Time デバッグ --------------------------- 例外 'ランタイム エラー' が スクリプト で発生しました。 この例外をデバッグできるデバッガは登録されていません。JIT デバッグを実行できません。 ---------------------------       OK --------------------------- いいえを押すとエラーメッセージが消えます。 でも、しばらくするとまた現れるようです。 なんか問題でもあるんでしょうか? 解決法お願いします。

  • Visual Studio 2005のJust-in-timeデバッグを完全に停止したい

    こんにちは。Visual Studio 2005をインストールしたところ、以前まで表示されていた「問題が発生したため、○○.exeを終了します。」というようなダイアログが出てこなくなり、代わりにデバッグをするかどうか聞かれるようになりました。このようなJust-in-timeデバッガのダイアログではなく、「問題が発生したため・・」というダイアログを出したいのですが、オプションからJust-in-timeデバッガを無効にしても、プログラムがクラッシュしたときにJust-in-timeデバッガが無効になっているとエラーが出てしまいます。Just-in-timeデバッガを完全に停止する方法はないでしょうか?

  • JITデバッガとは?

    あるフリーソフトで,起動できず, ”登録されたJITデバッガを使用できません。以下のコマンドでJITデバッガを起動しようとして,エラーコード0x2(2)が発生しました。コンピュータの設定を確認してください。 cordbg.exe !a 0xfc0 デバッガを主導でアタッチする間処理を待機させるには,[再起動]をクリックしてください。 JITデバッガ要求を中止するには[キャンセル]をクリックしてください。” と表示されますが,なんのことだか全然わからず困ってます。 わかる方,優しい言葉で説明お願いします。