Chce zrobic programik ktory cos mi wydrukuje na drukarce wszystko pisalem wedlug kursu ze tej strony oto zrodlo (oczywiscie cale tworzenie okna i obsluga komunikatow tez jest):
HDC hdcDrukarki;
PRINTER_INFO_5 *pinfo;
DWORD dwRozmiarbuf, dwIloscdrukarek;
EnumPrinters(PRINTER_ENUM_DEFAULT, NULL, 5, NULL, 0, &dwRozmiarbuf, &dwIloscdrukarek);
pinfo = (PRINTER_INFO_5 *) malloc(dwRozmiarbuf);
EnumPrinters(PRINTER_ENUM_DEFAULT, NULL, 5, (PBYTE) pinfo, dwRozmiarbuf, &dwRozmiarbuf, &dwIloscdrukarek);
hdcDrukarki=CreateDC(NULL, NULL, pinfo->pPrinterName, NULL);
free(pinfo);
DOCINFO di;
di.cbSize = sizeof(DOCINFO);
di.lpszDocName = "Dokument"; //nazwa dokumentu
di.lpszOutput = NULL;
di.lpszDatatype = NULL;
di.fwType = 0;
if( StartDoc(hdcDrukarki, &di) <= 0 ){}
if (StartPage (hdcDrukarki) <= 0){}
TextOut(hdcDrukarki, 10, 10, "ala", 3);
if( EndPage(hdcDrukarki) <=0 ){}
if( EndDoc(hdcDrukarki) <= 0 ){}
DeleteDC (hdcDrukarki);
Program kompiluje sie dobrze bez zadnych bledow czy warrningow ale zaraz po odpaleniu exe wyskakuje taki blad:
Unhandled exception in zlecenia.exe (NTDLL.DLL): 0x0000005: Access Violation
I jak tylko klikne Ok wylacza sie program
Blad wyskakuje jak doszedlem przy wykonywaniu tej linijki:
hdcDrukarki=CreateDC(NULL, NULL, pinfo->pPrinterName, NULL);
bo gdy ja zaznacze jako kometarz to program dziala wsumie poprawnie (niedrukuje ale sie niewylacza sam i zadnego bledu z komunikatem niewysypuje)
Pozdrawiam:
Krzysztof T.