Visual Studio 2012 - vshost32-clr2.exe перестал работать
Я создаю приложение WinForm в C# с использованием Visual Studio 2012, и я получаю сообщение об ошибке при отладке:
vshost32-clr2.exe has stopped working
Я уже искал, но большинство результатов для Visual Studio 2010 и ниже, и я получаю аналогичные решения, которые, я думаю, не применимы к Visual Studio 2012:
Properties -> Debug -> Enable unmanaged code debugging
Источник: сбой vshost32.exe при вызове неуправляемой DLL
Дополнительные детали:
Мой проект не использует 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 ответа
Не уверен, что это та же проблема, но у меня была очень похожая проблема, которая разрешилась (исчезла), когда я снял флажок "Включить процесс размещения Visual Studio" в разделе "Отладка" в Project/Properties. Я также включил отладку собственного кода.
Эта проблема может быть связана с отладкой приложения как "Любой процессор" в ОС x64, установите Target CPU как x86
Добавляя мои 2 цента, так как я столкнулся с этим сегодня.
В моем случае, вызов к принтеру передавал какое-то недопустимое значение, и кажется, что он отправляет отладчик в сон с рыбами.
Если вы столкнетесь с этим, посмотрите, сможете ли вы точно определить линию и убедитесь, что в вызове нет забавных бизнес-проблем (например, услуги печати).
Ниже решение работало для меня:
- Перейдите на вкладку Проект-> Свойства-> Отладка
- Снимите флажок "Включить процесс размещения Visual Studio"
- Установлен флажок "Включить отладку собственного кода"
Надеюсь это поможет.