• 締切済み

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