3

Visual Studio 2012 を使用して C# で WinForm アプリケーションを作成していますが、デバッグ時にエラーが発生します。

vshost32-clr2.exe has stopped working

既に検索しましたが、ほとんどの結果は Visual Studio 2010 以前のものであり、Visual Studio 2012 には適用できないと思われる同様のソリューションが得られます。

Properties -> Debug -> Enable unmanaged code debugging

ソース :アンマネージ DLL を呼び出すと vshost32.exe がクラッシュする

追加の詳細 :

  • 私のプロジェクトでは DLL を使用していません。

  • 私のプロジェクトで進行している限り、幅が17の場合にのみ発生します。

次のコードを使用します。

        Bitmap tmp_bitmap = new Bitmap(Width, Height, System.Drawing.Imaging.PixelFormat.Format24bppRgb);

        Rectangle rect = new Rectangle(0, 0, 16, tmp_bitmap.Height);
        System.Drawing.Imaging.BitmapData bmpData =
            tmp_bitmap.LockBits(rect, System.Drawing.Imaging.ImageLockMode.ReadWrite,
            tmp_bitmap.PixelFormat);

        unsafe
        {
            // Get address of first pixel on bitmap.
            byte* ptr = (byte*)bmpData.Scan0;

            int bytes = Width * Height * 3; //124830 [Total Length from 190x219 24 Bit Bitmap]
            int b;  // Individual Byte

            for (int i = 0; i < bytes; i++)
            {
                _ms.Position = EndOffset - i;  // Change the fs' Position
                b = _ms.ReadByte();              // Reads one byte from its position

                *ptr = Convert.ToByte(b);
                ptr++;

                // fix width is odd bug.
                if (Width % 4 != 0)
                    if ((i + 1) % (Width * 3) == 0 && (i + 1) * 3 % Width < Width - 1)
                    {
                        ptr += 2;
                    }
            }
                // Unlock the bits.
            tmp_bitmap.UnlockBits(bmpData);
        }

そのような値がメソッドに設定されている場合にのみ発生するため、コードを投稿する必要があると思います。

この問題の解決にご協力いただければ幸いです。事前にどうもありがとうございました!

4

4 に答える 4

1

この問題は、x64 OS で「任意の CPU」としてアプリケーションをデバッグし、ターゲット CPU を x86 に設定することに関連している可能性があります。

于 2013-10-10T15:51:40.723 に答える
0

今日これに遭遇したので、2セントを追加します。

私の場合、プリンターへの呼び出しが無効な値を渡していたため、デバッガーが魚と一緒にスリープ状態になっているようです。

これに遭遇した場合は、ラインを特定できるかどうかを確認し、コールアウトの周りに面白いビジネス上の問題 (印刷サービスなど) がないことを確認してください。

于 2015-07-14T07:10:14.947 に答える