Witam. udało mi się dodać aktualną datę i czas do pobranej ramki z kamery oraz wyświetlić ją w pictureBox. jednak gdy próbuję zapisać sekwencję video program głasza wyjątek: Nastąpiła próba odczytu lub zapisu pamięci chronionej. Często wskazuje to, że inna pamięć jest uszkodzona.
KOD:
....
//inicjalizacja narzędzia zapisu wideo
writer = cvCreateVideoWriter("1.avi", CV_FOURCC('P','I','M','1'), 25, cvSize( frameW, frameH ), 1);
....
private: System::Void timer3_Tick(System::Object sender, System::EventArgs e)
{
//pobranie daty i czasu systemowego
SYSTEMTIME st;
GetSystemTime(&st);
System::String^ data;
data = ("Data:"+st.wDay+":"+st.wMonth+":"+st.wYear+" Czas:"+ (st.wHour+1)+":"+st.wMinute+":"+st.wSecond+"");
//konwersja string data do char napis
//
pin_ptr<const wchar_t> wch = PtrToStringChars(data);
size_t convertedChars = 0;
size_t sizeInBytes = ((data->Length + 1) * 2);
errno_t err = 0;
char* napis = (char *)malloc(sizeInBytes);
err = wcstombs_s(&convertedChars,napis, sizeInBytes,wch, sizeInBytes);
//
//definicja czcionki
CvFont font;
double hScale=0.5;
double vScale=0.5;
int lineWidth=1;
cvInitFont(&font,CV_FONT_HERSHEY_SIMPLEX, hScale,vScale,0,lineWidth);
frame = cvQueryFrame(capture);
//naniesienie tekstu na ramkę
cvPutText (frame,napis,cvPoint(370,380), &font, cvScalar(255,255,0));
//podgląd obrazu z kamery
this->pictureBox1->Image = gcnew
System::Drawing::Bitmap(frame->width,frame->height,frame->widthStep,
System::Drawing::Imaging::PixelFormat::Format24bppRgb,
(System::IntPtr) frame->imageData);
//rejestracja sekwencji wideo
cvWriteFrame(writer,frame);
}
Proszę o pomoc, siedzę nad tym już sporo czasu...