Исключение System.OverflowException если запускаю из Visual Studio - C#
Формулировка задачи:
Здравствуйте, тут такое дело, подключил либу AForge.Video.VFW для записи видео.
Компилирую, нажимаю "Запись", выдает исключение System.OverflowException. Если программу запускать не из под Visual Studio, а просто exe из папки то все ок, запись идет. В чем может быть проблема? Я так понимаю какая-то проблема с разрядностью, но не понимаю почему.. ведь просто из папки exe запускается как надо. Да и менял я на х86 и на х64, не помогает..
Код ошибки под спойлером
Листинг программы
- Bitmap bmp = Properties.Resources.image;
- ...
- writer.AddFrame(bmp); public void AddFrame( Bitmap frameImage )
- {
- lock (sync)
- {
- // check if AVI file was properly opened
- if (buffer == IntPtr.Zero)
- throw new System.IO.IOException("AVI file should be successfully opened before writing.");
- // check image dimension
- if ((frameImage.Width != width) || (frameImage.Height != height))
- throw new ArgumentException("Bitmap size must be of the same as video size, which was specified on opening video file.");
- // lock bitmap data
- BitmapData imageData = frameImage.LockBits(
- new Rectangle(0, 0, width, height),
- ImageLockMode.ReadOnly, PixelFormat.Format24bppRgb);
- // copy image data
- int srcStride = imageData.Stride;
- int dstStride = stride;
- int src = imageData.Scan0.ToInt32() + srcStride * (height - 1); //ОШИБКА ЗДЕСЬ!!!
- int dst = buffer.ToInt32();
- for (int y = 0; y < height; y++)
- {
- Win32.memcpy(dst, src, dstStride);
- dst += dstStride;
- src -= srcStride;
- }
- // unlock bitmap data
- frameImage.UnlockBits(imageData);
- // write to stream
- if (Win32.AVIStreamWrite(streamCompressed, position, 1, buffer,
- stride * height, 0, IntPtr.Zero, IntPtr.Zero) != 0)
- throw new VideoException("Failed adding frame.");
- position++;
- }
- } int src = imageData.Scan0.ToInt32() + srcStride * (height - 1);
Решение задачи: «Исключение System.OverflowException если запускаю из Visual Studio»
textual
Листинг программы
- IntPtr src = imageData.Scan0 + srcStride * (height - 1);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д