Laufzeitfehler: asycfilt.dll | OleLoadPicturePath
-
Hallo,
in meiner Anwendung lade ich ein Bild aus dem Internet via URLDownloadToFile()
und zeige es dann mit OleLoadPicturePath, um es dann anzuzeigen.Schlecht ist nur, dass ich nach ein paar Minuten immer einen Laufzeitfehler kriege, bei dem mir asycfilt.dll als fehlerquelle angezeigt wird und dass die Datei 0kb groß sei. Dazu muss ich sagen, dass ein Thread die Datei regelmäßig neu läd.
habt ihr eine Idee woran es liegen könnte?
Hier der Codevoid CDaxomatLOGGERDlg::start_download() { CWinThread* pThread = AfxBeginThread (download_thread, this); } void CDaxomatLOGGERDlg::Automatik_Modus() { show_blank=false; SetTimer( 1, 5000, NULL); CDaxomatLOGGERDlg::start_download(); } UINT CDaxomatLOGGERDlg::download_thread(LPVOID pParam) { CDaxomatLOGGERDlg* pDlg = (CDaxomatLOGGERDlg*) pParam; // Löschen des Cache pDlg->CDaxomatLOGGERDlg::DelTempFiles(); // Änderung der Nachricht in der StatusBar pDlg->m_StatusBar->SetText(("Empfange Daten ..."),0, 0); // Hier der Download HRESULT hr; CString sURL, sFile; sURL = "http://www.daxomat.de/charts/dax_rt_kurz.jpg"; sFile= pDlg->strPfadl; hr = URLDownloadToFile ( NULL, sURL, sFile, 0, 0); if(SUCCEEDED(hr)){ Sleep(2000); pDlg->m_StatusBar->SetText(("Daten aktualisiert!"),0, 0); pDlg->CDaxomatLOGGERDlg::Bild_laden(); Sleep(3000); pDlg->m_StatusBar->SetText((""),0, 0); }else{ pDlg->m_StatusBar->SetText(("Fehler bei der Übertragung!"),0, 0); } return 0; } void CDaxomatLOGGERDlg::Bild_laden(){ FILE *pFilePointer = NULL; if((pFilePointer = fopen(strPfadl, "r"))){ LPCTSTR Pfad = strPfadl; USES_CONVERSION; OleLoadPicturePath(const_cast<LPOLESTR>(T2COLE(Pfad)), 0, 0, 0, IID_IPicture,(void **)&m_bild); hide=9; CDaxomatLOGGERDlg::Bild_anzeigen(); fclose(pFilePointer); }else{ m_StatusBar->SetText(("ERROR: FILE NOT FOUND!"),0, 0); MessageBox("HIER"); } } void CDaxomatLOGGERDlg::Bild_anzeigen(){ // Größen- & Positionsvariablen int x=1,y=20; int nWidth = GetSystemMetrics(SM_CXSCREEN); int nHeight = GetSystemMetrics(SM_CYSCREEN); CRect cR_chart, rc; CRgn rgn; OLE_XSIZE_HIMETRIC width; OLE_YSIZE_HIMETRIC height; //Main DC CClientDC dc(this); dc.SetBkMode(TRANSPARENT); // int nPixel = HIMETRIC*96/2540; m_bild->get_Width(&width); m_bild->get_Height(&height); width-=200; double faktor= 1; int size_x,size_y; size_x=(int)( (width*96/2540 )*faktor ); size_y=(int)( (height*96/2540 )*faktor ); cR_chart.left =x; cR_chart.top =y; cR_chart.right =x+size_x; cR_chart.bottom =y+size_y-6; rgn.CreateRectRgnIndirect( &cR_chart ); dc.SelectClipRgn(&rgn); rgn.DeleteObject(); GetClientRect(&rc); m_bild->Render(dc, x, y, size_x, size_y, 0, height, width, -height, &rc); dc.RectVisible(CRect (0,0,200,200)); /* COLORREF farbe; int farb_x=maus_koordinaten.x, farb_y=maus_koordinaten.y; farbe = dc.GetPixel(farb_x,farb_y); HBRUSH MyBrush = CreateSolidBrush(farbe); HPEN MyPen = CreatePen( PS_SOLID, 1, RGB(0,0,0) ); dc.SelectObject(MyBrush); dc.SelectObject(MyPen); dc.Rectangle(farb_x-15,farb_y-15,farb_x+15,farb_y+15); */ }
-
Ich zeichne jetzt das Bild in der OnPaint und lassse es außerdem nur anzeigen, wenn OleLoadPicturePath erfolgreich war und trotzdem stürzt das Programm immer noch ab.
Kennt ihr das Problem? Wie kann ich es lösen?