DOBON.NETプログラミング道掲示板

■ 「新規作成」から投稿できます。
■ マルチポストされた投稿を見つけたときは、その投稿に返信することによりご報告ください。その際は匿名で投稿し、マルチポストされている場所を併記してください。
■ スパム対策のため、メールアドレスの先頭に"_"という文字が付加されています。
RSS 2.0 RSS 2.0 | RSS 0.91 | 携帯電話用 | 自分専用のアイコンを使用するには | 掲示板への要望 | 管理人に連絡 | お気楽掲示板
■ 24時間以内に作成されたスレッドは New で表示されます。
■ 24時間以内に更新されたスレッドは UpDate で表示されます。

記事リスト ( )内の数字はレス数
Nomal参照dllへの文字列引数をutf8で渡したい。(13) | NomalFILE.COPYでIOExceptionエラーが出る(11) | Nomalリストを別フォームに渡す方法(9) | Nomal例外発生した場合に変数をcatchに渡したい(9) | NomalCode128でバーコードが読み取れない(8) | Nomalモードレスフォーム Warning IDE0067を回避したい(7) | NomalIE11では表示されるが、.netのWebBrowserでは、表示されないHPを表示する方法(7) | Nomal数字だけで構成されてるCSVフィールドが自動的に数値として解釈される(7) | NomalフォームコントロールへのDataBindingsでプロパティが相互反映されない(7) | Nomal起動ディスプレイの指定方法について(6) | NomalListBoxにデータが表示されない(6) | Nomal文字列を8bit に戻してから UTF-8 に変換する方法(6) | NomalSQLServerテーブル内容をDataGridViewに表示するコードについて(6) | Nomal文字列構造体のListのソート(6) | NomalWebBrowser Controlを使って、任意の値を取得(5) | Nomalこんな演算子初めて見ました。(5) | NomalRichTextBoxで入力文字の自動折り返しを止めたい(5) | NomalあるWindows10PCでビルドしたEXEがW8.1以下で実行エラー(5) | Nomalポルトガル語の登録(5) | Nomaloo4oのAddTableをADOに移行したい(5) | NomalDeclare宣言するdllと参照追加をするdllの区別(4) | NomalVS2017で作成されたDLLをVS2005で作成されたAPで使用する方法(4) | Nomalフォルダ内の全ての容量を取得したい(4) | Nomal共変性と反変性ってこういうこと?(4) | Nomalプロセスからウインドウを取得(4) | NomalNewの使い方間違ってますか?(4) | Nomalユーザーコントロール内のテキストボックスのmodifiedプロパティ(4) | NomalJOIN操作の構文エラー(4) | Nomal動的にプロパティや変数の値の取得(4) | NomalVB6 ほかのアプリケーションを起動し そのアプリケーションは終了させる方法(4) | Nomalスクロールバーが出た時に高さを変えたい(4) | NomalDatagridViewの行高さ変更について(4) | NomalLINQのメソッド構文の書き方(3) | Nomalvb.net+SQLiteで複数データベースファイルへのトランザクション方法(3) | Nomalジェネリック型インターフェースを使った変数を扱いたい(3) | NomalProcess.WaitForExitで正常に動作しない?(3) | NomalPictureBox.Locationのキャンセル(3) | NomalCatch時のex.StackTraceの情報(3) | NomalVisualStudioでマクロ(3) | NomalOracleDataAccess を参照したプログラムでデバッグモードが機能しなくなる(3) | NomalVisualStudioでExcelのVSTO開発(3) | NomalVB.NETでCSVを読み込む際にSQL文を使いたい(3) | NomalDrawImage でメモリ不足エラー(3) | NomalVb.netからAccessへの接続について(3) | Nomal令和の日付への対応(3) | NomalHTTP 417エラーを発生させるためのIIS設定はどうすればよいか(3) | NomalDrawString前のFillRectangle有無により文字の太さが違う理由について教えて下さい(3) | NomalPIctureBox同士を論理合成したい(3) | Nomalデータセット定義ファイルからDataTable(3) | Nomalネットの画像の複数枚を重ね合わせたい(3) | NomalDataGridViewで検索をかける方法(3) | NomalDataGridViewの選択時の色を透明にしたい(3) | NomalWebBrowserでWebページからのメッセージ(3) | NomalASP.NETから呼ばれているかどうか判定する方法(3) | NomalCA2213の警告が消えません(3) | NomalC# 現在のコンテキスト内にxxxという文字は存在しませんと出ます(3) | NomalTaskクラスを.NET Framework 2.0で実現させる方法(2) | NomalWebBrowser Control foreachで値が消える(2) | NomalEditボックスに簡体字をセットする方法(2) | NomalWebClientが上手く動かない(2) | Nomalフォーム外のカーソルの変更(2) | Nomalラムダ式の勉強中(2) | NomalRichTextBoxで入力文字の自動折り返しを止めたい(2) | NomalC#をVBに変換(2) | NomalWebClientで、短期間にDownloadStringAsyncを実行したい(2) | NomalマウスのないOSでマウスカーソルの表示(2) | NomalToolStripMenuItemにShortcutKeysを指定した際の、元のコントロールを取得する方法(2) | NomalMouseEventArgsのカレント座標(2) | Nomalリッチテキストボックスでの字間の調整(2) | NomalVC++ → VB.Netに変換時に文法エラー(2) | NomalSQL-Server Compact 4.0が表示されない(2) | Nomalバーコードの数字を非表示にしたい(2) | Nomal自作したアプリの発行元を明記したい(2) | NomalSystem.Threading.Thread.Sleep()と変数(2) | NomalDataGridView 行の背景色の設定(2) | NomalDatagridviewのクリア(2) | NomalnumericUpDwonコントロールのvalue(2) | NomalVisual Studio DataTableの値のアクセスの仕方(2) | NomalDataTableの構造が同じか調べるメソッド(2) | NomalRejectChangesについて(2) | NomalPC機種によってスタートアップ画面が中央から左上にずれる、Fontがおかしくなる。(2) | Nomalタスクスケジュール登録時の例外メッセージ(2) | Nomal管理者モードでクリック(2) | NomalVB2017でのインストーラ作成時のエラーについて(2) | NomalMicrosoft Azure OCRのサンプルコード実行時エラー(2) | Nomalデータバインド時のDataGridViewのカスタムソート(2) | NomalObject型からDecimalへの変換(2) | Nomal擬似言語をVBのプログラミングに変換(2) | Nomalユーザーコントロールのプロパティが保存されない(2) | NomalWindows10(1803)からGetHostEntryでipv4が取得出来ない場合がある(2) | Nomal自分自身を呼び出すのはOKですか(1) | NomalList型でエラーが起きてしまい・・・(1) | NomalLINQの拡張メソッドの定義(1) | NomalWebRequest でメモリが解放されない(1) | NomalFunction プロシージャからの文字選択(1) | NomalRDP接続でのネットワーク帯域制限(0) | Nomal必須コンポーネントの一覧に追加したい(0) | NomalApp.configのMy.Application.Log設定で使用できない属性が出る(0) | Nomalvb2010を使用したmicrosoft Wordの任意の行の削除(0) | NomalWinFormsでWindows10のカメラアプリと連携したい(0) |



■記事リスト / ▼下のスレッド
■34341 / 親記事)  Process.WaitForExitで正常に動作しない?
□投稿者/ 香魚 一般人(1回)-(2019/10/28(Mon) 20:36:15)
  • アイコン環境/言語:[Win10,Office2016,VB.NET(2017)] 
    分類:[.NET] 

    Public Class Form1
        Dim myapp As String = "excel.exe"
        'Dim myapp As String = "notepad.exe"
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim p As New System.Diagnostics.Process()
            p.StartInfo.FileName = myapp
            p.Start()
        End Sub
        Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
            Dim p As New System.Diagnostics.Process()
            p.StartInfo.FileName = myapp
            p.Start()
            p.WaitForExit()
            MsgBox("完了")
        End Sub
    End Class
    
    Button1はexcel.exeまたはnotepad.exeを起動します。
    
    Button2はexcel.exeまたはnotepad.exeを起動して
    そのプロセスが終了したら完了のメッセージボックスを表示します。
    
    実行環境 : Win10 + Office2016 + VB2017
    
    
    上記のプログラムを実行すると次のような動きになります。
    A)Button1を押すと、excel.exeが起動します。
      →問題なし。
    Aで起動したエクセルを終了します。
    
    B)Button2を押すと、excel.exeが起動し、WaitForExitで待機状態となります。
      エクセルを終了すると完了のメッセージボックスが表示されます。
      →問題なし。
    
    C)Button1を押して、excel.exeを起動します。
      エクセルが起動している状態で、Button2を押します。
      エクセルが2つ表示された状態になりますが、
      その状態で完了のメッセージが表示されてしまいます。
      →なぜかWaitForExitが働いていない状態。
    
    Cのケースでも、2つ目に起動したエクセルが終了するまで
    WaitForExitで待機状態にすることはできないでしょうか?
    
    ちないみに、コメントアウトしているnotepad.exeの方で試すと、
    Cのケースも問題なく待機状態となります。
    
    ちなみに、
    Win7 + Office2010 + VB2010 の環境で同じプログラムを実行すると
    excel.exeもnotepad.exeも
    Cのケースでも問題なく待機状態となります。
    

違反を報告
引用返信

▽[全レス3件(ResNo.1-3 表示)]
■34342 / ResNo.1)  Re[1]: Process.WaitForExitで正常に動作しない?
□投稿者/ Azulean 大御所(512回)-(2019/10/28(Mon) 22:04:58)
  • アイコン2019/10/28(Mon) 22:05:31 編集(投稿者)

    No34341に返信(香魚さんの記事)
    > Cのケースでも、2つ目に起動したエクセルが終了するまで
    > WaitForExitで待機状態にすることはできないでしょうか?

    残念ながらできません。

    Excel.exe は、すでに Excel.exe が起動していればそのプロセスに処理をお願いしてすぐに終了するように実装されているためです。

    ほかの方法で Excel.exe がいなくなっているかどうかを監視するということも考えられますが、ユーザーが最初から Excel.exe を起動していた場合にどうするかといった仕様検討が必要になります。
違反を報告
引用返信
■34344 / ResNo.2)  Re[1]: Process.WaitForExitで正常に動作しない?
□投稿者/ 魔界の仮面弁士 大御所(1244回)-(2019/10/29(Tue) 08:58:02)
  • アイコンNo34341に返信(香魚さんの記事)
    > Win7 + Office2010 + VB2010 の環境で同じプログラムを実行すると
    > excel.exeもnotepad.exeも
    > Cのケースでも問題なく待機状態となります。

    Excel 2010 までは、新規プロセスを起動していましたが、
    Excel 2013 からは既存プロセスを流用する設計に変わったためです。

    ただしオートメーションで起動する場合には、引き続き
    複数のプロセスとして同時に起動することができます。


    詳しいことはこちらをご覧ください。
    https://blogs.msdn.microsoft.com/office_client_development_support_blog/2012/02/14/office-4/
    https://blogs.msdn.microsoft.com/office_client_development_support_blog/2016/12/19/excel2013-changes-to-sdi/
違反を報告
引用返信
■34346 / ResNo.3)  Re[1]: Process.WaitForExitで正常に動作しない?
□投稿者/ 香魚 一般人(2回)-(2019/10/31(Thu) 21:19:59)
  • アイコンありがとうございました。

    windowsのバージョンが原因か
    excelのバージョンが原因か
    visualstudioのバージョンが原因か
    分からなかったのですが、
    excelのバージョンが原因であることが分かりました。

    excelでいろいろ調べたところ、
    /x スイッチを指定すれば、プロセス統合(?)されないようですので、
    それで対応してみたいと思います。

解決み!
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-3]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■34332 / 親記事)  PictureBox.Locationのキャンセル
□投稿者/ VBはじめました 一般人(7回)-(2019/10/28(Mon) 10:54:25)
  • アイコン環境/言語:[VB.NET] 
    分類:[.NET] 

    ウィンドウフォームにPictureBoxとButtomを配置して次のコードを実行すると、
    PictureBoxのイメージロードのキャンセルがキャッチできません。

    ところが、ボタンをもう一つ配置して、ロードが終わる前に、CancelAsyncを実行する(早業で・・・)すると、キャンセルできます。

    どのようなコードを書けば、キャンセルすることが可能になるのでしょうか?

    どなたか、詳しい方いらっしゃいましたら、教えて頂けないでしょうか?
    宜しくお願いいたします。

    Windows7 VisualStudio2017 VB.NET


    Imports System.ComponentModel
    Public Class Form3
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Me.PictureBox1.ImageLocation = "http://kemilia.ninja-web.net/free/yama1-1024.jpg"
    Me.PictureBox1.CancelAsync()
    End Sub
    Private Sub PictureBox1_LoadCompleted(sender As Object,
        e As AsyncCompletedEventArgs) Handles PictureBox1.LoadCompleted
    If e.Error IsNot Nothing Then
    MsgBox("読み込み時にエラーが発生しました。")
    ElseIf e.Cancelled Then
    MsgBox("キャンセルボタンが押されました。")
    Else
    MsgBox("読み込みが終わりました。")
    End If
    End Sub
    End Class
違反を報告
引用返信

▽[全レス3件(ResNo.1-3 表示)]
■34333 / ResNo.1)  Re[1]: PictureBox.Locationのキャンセル
□投稿者/ Hongliang 大御所(568回)-(2019/10/28(Mon) 11:16:31)
  • アイコンPictureBox.LoadCompletedイベントのドキュメント
    https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.picturebox.loadcompleted?view=netframework-4.8
    には以下のように記述されています。

    > The LoadCompleted occurs only when the image is loaded asynchronously by using one of the LoadAsync methods, and WaitOnLoad is false.
    > If the image-load is canceled by calling the CancelAsync method the Cancelled property of the AsyncCompletedEventArgs will be set to true.

    (私訳)
    LoadCompletedイベントは、画像がLoadAsyncメソッドを使って非同期にロードされ、かつWaitOnLoadプロパティがfalseの時にだけ発生します。
    CancelAsyncメソッドの呼び出しによって画像ロードがキャンセルされた場合、AsyncCompletedEventArgsのCancelledプロパティがtrueに設定されます。

    // と言いつつ、LoadCompletedはLoadとかImageLocationとかでも発生しちゃってるようですが。
違反を報告
引用返信
■34334 / ResNo.2)  Re[2]: PictureBox.Locationのキャンセル
□投稿者/ VBはじめました 一般人(8回)-(2019/10/28(Mon) 14:40:00)
  • アイコンHongliangさん有難うございます。
    教えて頂いた通り、次のように変更するとできました。
    有難う御座いました。


    Private Sub Form3_Load(sender As Object, e As EventArgs) Handles Me.Load
    Me.PictureBox1.WaitOnLoad = False
    End Sub
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Me.PictureBox1.LoadAsync("http://kemilia.ninja-web.net/free/yama1-1024.jpg")
    Me.PictureBox1.CancelAsync()
    End Sub
    Private Sub PictureBox1_LoadCompleted(sender As Object, e As AsyncCompletedEventArgs) Handles PictureBox1.LoadCompleted
    If e.Error IsNot Nothing Then
    MsgBox("読み込み時にエラーが発生しました。")
    ElseIf e.Cancelled Then
    MsgBox("キャンセルボタンが押されました。")
    Else
    MsgBox("読み込みが終わりました。")
    End If
    End Sub
違反を報告
引用返信
■34335 / ResNo.3)  Re[3]: PictureBox.Locationのキャンセル
□投稿者/ VBはじめました 一般人(9回)-(2019/10/28(Mon) 14:40:46)
  • アイコンNo34334に返信(VBはじめましたさんの記事)

    解決済み押すの忘れました。
解決み!
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-3]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■34328 / 親記事)  Catch時のex.StackTraceの情報
□投稿者/ たくろう 一般人(1回)-(2019/10/26(Sat) 10:43:50)
  • アイコン環境/言語:[VB2017] 
    分類:[.NET] 

    2019/10/26(Sat) 10:47:40 編集(投稿者)
    2019/10/26(Sat) 10:44:43 編集(投稿者)
    2019/10/26(Sat) 10:44:34 編集(投稿者)
    
    --------------------------------
    01    Public Class Form1
    02        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    03            Try
    04                Dim l1 As Long = 1
    05                Dim l2 As Long = 0
    06                Dim l3 As Long
    07                l3 = l1 / l2 'ゼロ除算エラーを発生
    08            Catch ex As Exception
    09                Console.WriteLine(ex.StackTrace)
    10            End Try
    11        End Sub
    12        Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    13            Try
    14                Test2()
    15            Catch ex As Exception
    16                Console.WriteLine(ex.StackTrace)
    17            End Try
    18        End Sub
    19        Private Sub Test2()
    20            Try
    21                Dim l1 As Long = 1
    22                Dim l2 As Long = 0
    23                Dim l3 As Long
    24                l3 = l1 / l2 'ゼロ除算エラーを発生
    25            Catch ex As Exception
    26                Throw
    27            End Try
    28        End Sub
    29    End Class
    --------------------------------
    
    例として、このようなプログラムがあります。
    #実際には会社でプログラムを書いてて、それを紙に印刷して持ち帰り
    #家で紙から再度手打ちしてプログラムを書いているので、
    #もしかすると、誤字脱字があるかもしれません。
    #社内ルールで会社から掲示板に投稿できない為、ご容赦ください。
    
    フォーム上にButton1とButton2の2つ配置されています。
    両ボタンとも処理内容は同じです。
    ただ、その処理をボタンのイベントプロシージャに直接書いているか
    サブプロシージャに書いているかの違いです。
    
    Button1を実行すると、エラーが発生して、
    ex.StackTrace(の出力結果)には
    「7行目でエラー」という情報があり、問題ありません。
    
    Button2を実行すると、エラーが発生して、
    ex.StackTrace(の出力結果)には
    「26行目でエラー」と「14行目でエラー」の2つの情報だけで、
    最初のエラー位置「24行目でエラー」という情報が含まれません。
    
    「24行目でエラー」という情報が含まれるようにしたいのですが、
    どのようにすれば良いでしょうか?
    
    
    ※サブプロシージャではTry-Catchしなければ良いのかもしれませんが、
      この例ではそうですが、実際には、データベースのトランザクションなどを行っており、
      サブプロシージャ内でもTry-Catchが必要となります。
    

違反を報告
引用返信

▽[全レス3件(ResNo.1-3 表示)]
■34330 / ResNo.1)  Re[1]: Catch時のex.StackTraceの情報
□投稿者/ 魔界の仮面弁士 大御所(1242回)-(2019/10/26(Sat) 17:27:32)
  • アイコンNo34328に返信(たくろうさんの記事)
    > 「24行目でエラー」という情報が含まれるようにしたいのですが、
    > どのようにすれば良いでしょうか?

    26 行目を
     Throw
    から
     System.Runtime.ExceptionServices.ExceptionDispatchInfo.Capture(ex).Throw()
    に変更してみてください。

    https://docs.microsoft.com/ja-jp/dotnet/api/system.runtime.exceptionservices.exceptiondispatchinfo?WT.mc_id=DT-MVP-8907&view=netframework-4.5
違反を報告
引用返信
■34331 / ResNo.2)  Re[2]: Catch時のex.StackTraceの情報
□投稿者/ たくろう 一般人(2回)-(2019/10/26(Sat) 22:34:25)
  • アイコンNo34330に返信(魔界の仮面弁士さんの記事)
    > 26 行目を
    >  Throw
    > から
    >  System.Runtime.ExceptionServices.ExceptionDispatchInfo.Capture(ex).Throw()
    > に変更してみてください。

    ありがとうございます。
    週明け、会社で確認してみます。

    #解決マークはその時に。

違反を報告
引用返信
■34343 / ResNo.3)  Re[2]: Catch時のex.StackTraceの情報
□投稿者/ たくろう 一般人(3回)-(2019/10/28(Mon) 23:03:28)
  • アイコンNo34330に返信(魔界の仮面弁士さんの記事)
    >  System.Runtime.ExceptionServices.ExceptionDispatchInfo.Capture(ex).Throw()

    会社で試したところ、できました。

    「24行目でエラー」と「26行目でエラー」と「14行目でエラー」の
    3つの情報が含まれるようになりました。
    (3つの情報以外に、エラーとは直接関係ない(?)情報が含まれるようになってしまっていましたけども、問題ありません。)

    ありがとうございました。

解決み!
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-3]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■34318 / 親記事)  VisualStudioでマクロ
□投稿者/ VBはじめました 一般人(3回)-(2019/10/15(Tue) 15:21:04)
  • アイコン環境/言語:[VisualStudio2017 VB.net] 
    分類:[.NET] 

    VisualStudioで、
    各行の先頭についている文字を削除する方法ってありますか?

    例えば、下記のようなサンプルをコピペした時に、先頭の:以前の文字を削除したい。

    (引用先:https://www.atmarkit.co.jp/fdotnet/vb6tonet/vb6tonet23/vb6tonet23_01.html)
    1: Delegate Function SampleDelegate(ByVal x As Integer, ByVal y As Integer) As Integer
    2:
    3: Public Class SampleClass
    4: Public Function SampleMethod(ByVal x As Integer, ByVal y As Integer) As Integer
    5: Return x * y
    6: End Function
    7: End Class
    8:
    9: Public Class Form1
    10: Inherits System.Windows.Forms.Form
    11:
    12: …Windows フォーム デザイナで生成されたコード…
    13:
    14: Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    15: Dim SampleInstance As New SampleClass()
    16: Dim sample As SampleDelegate = AddressOf SampleInstance.SampleMethod
    17: Dim result As Integer = sample(2, 3)
    18: Trace.WriteLine(result.ToString())
    19: End Sub
    20: End Class

    どなたか?詳しい方いらっしゃいましたら宜しくお願いいたします。

違反を報告
引用返信

▽[全レス3件(ResNo.1-3 表示)]
■34319 / ResNo.1)  Re[1]: VisualStudioでマクロ
□投稿者/ Hongliang 大御所(565回)-(2019/10/15(Tue) 15:32:33)
  • アイコンそれぐらいなら正規表現で置換すればいいかと思いますが。
    Ctrl+Rで置換ウィンドウを出して、左下のアイコンの中から正規表現を選んでおいて、
    ^[ \t]*[0-9]+:
    を消す感じで。

    あるいは矩形選択(Altを押しながら選択)して削除するとか。
違反を報告
引用返信
■34320 / ResNo.2)  Re[2]: VisualStudioでマクロ
□投稿者/ VBはじめました 一般人(4回)-(2019/10/15(Tue) 17:20:56)
  • アイコンできました。有難うございます。
    置き換えで成否表現が使えるの知りませんでした。

    問題ないのですが、欲をかくと。
    これを、マクロ化するってできないですよね?

違反を報告
引用返信
■34322 / ResNo.3)  Re[3]: VisualStudioでマクロ
□投稿者/ VBはじめました 一般人(6回)-(2019/10/15(Tue) 20:42:44)
  • アイコンありがとうございました!
解決み!
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-3]



■記事リスト / ▲上のスレッド
■34314 / 親記事)  OracleDataAccess を参照したプログラムでデバッグモードが機能しなくなる
□投稿者/ kane123 一般人(1回)-(2019/10/14(Mon) 10:22:38)
  • アイコン環境/言語:[VB.net , .NET Framework3.5 , Windows7 (32bit), VisualStudio Standard 2010] 
    分類:[.NET] 

    お世話になっております。
    
    VB.net , .NET Framework3.5  , Windows7 (32bit), VisualStudio Standard 2010
    という環境下で  Oracle.Data.Access (2.112.1.0) を使用したWindowsFormアプリを開発しております。
    
    ODP.netのライブラリである、Oracle.Data.Accessを使用した処理を実行すると、
    VisualStudioのデバッガ機能が通常通り機能せず、いかなるエラーであっても実行時
    エラー発生箇所で停止することなくアプリケーションが異常終了してしまい、バグ発生箇所
    の特定がしづらいという事象が起こっています。下記の、Button1_Clickはその事象を端的に
    再現させたものです。ゼロ除算を行っている箇所で、「vshost32-clr2.exe は動作を停止しました」
    とのメッセージが出て異常終了してしまします。
    
    何か対策はありますでしょうか?
    
    もし現状のままで行くとなると、全ての処理にTry Catch ステートメントを噛ませてデバッグしなければ
    いけないということになり、これは避けたいです。
    
    また、今までにVisualStudioを使った他の開発者で、この事象が起こらないパターンも
    目にしているので、何かしら糸口はあるはずでは、と考えております。
    
    よろしくお願いいたします。
    
    Public Class Form1
    
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    
            Dim oracon As New Oracle.DataAccess.Client.OracleConnection("xxxxxxxxxx")
            'Oracle.DataAccess を使用する
    
            Dim i As Integer = 1
            i = i / 0    'デバッガが停止せず異常終了。
    
        End Sub
        Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
    
            Dim i As Integer = 1
            i = i / 0        'デバッガが停止してくれる。
    
        End Sub
    End Class
    
    

違反を報告
引用返信

▽[全レス3件(ResNo.1-3 表示)]
■34315 / ResNo.1)  Re[1]: OracleDataAccess を参照したプログラムでデバッグモードが機能しなくなる
□投稿者/ kane123 一般人(2回)-(2019/10/14(Mon) 11:26:35)
  • アイコン
    半分、自己解決に至りましたので報告いたします。
    
    
    VisualStudio Community 2019 にて、.NetFramework 4.5.2
    でアプリケーションを新規作成し上記を実行したところ、
    デバッグ停止するようになりました。 
    
    VisualStudio の各バージョン/エディションと、もしくは.NetFrameworkのバージョンと
    各Oracle.Data.Accessのバージョンの間に、相互の相性などがあるのであれば、その相性を
    一覧などで入手できたらいいな、というふうに思います。
    
    もう少し、自分の環境で様々な組み合わせで検証してみようと思います。
    

違反を報告
引用返信
■34316 / ResNo.2)  Re[2]: OracleDataAccess を参照したプログラムでデバッグモードが機能しなくなる
□投稿者/ Hongliang 大御所(564回)-(2019/10/14(Mon) 12:03:58)
  • アイコンVisual Studio 2010だとプロジェクトのプロパティにホスティングプロセス云々というのがあるかと思いますが、そのチェックを外してみてはいかがでしょうか。
    検証環境などを持ってるわけでもなく、エラーの内容からの連想(推測ですらない)ですが。
違反を報告
引用返信
■34317 / ResNo.3)  Re[3]: OracleDataAccess を参照したプログラムでデバッグモードが機能しなくなる
□投稿者/ kane123 一般人(3回)-(2019/10/14(Mon) 16:38:18)
  • アイコン
    回答ありがとうございます。 
    
    >>Visual Studio 2010だとプロジェクトのプロパティにホスティングプロセス云々というのがあるかと思いますが、そのチェックを外してみてはいかがでしょうか。
    
    試してみましたが、変化はありませんでした。
    なお、VisualStudio2010でも詳細コンパイルオプションで .NetFramework4.0に
    変更したところ、、VisualStudio2010であっても、デバッグ機能が正常に
    機能するようになりました。 現時点では、.NET Framewrokのバージョン数とODP.netのバージョンに「相性」があるということが、(検証によって)ある程度推察される、というレベルですね。

違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-3]






Mode/  Pass/


- Child Tree -