Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Drukowanie przez WinAPI

Ostatnio zmodyfikowano 2010-12-21 15:38
Autor Wiadomość
pekfos
Temat założony przez niniejszego użytkownika
Drukowanie przez WinAPI
» 2010-12-19 12:10:17
co jest nie tak z tym kodem? kompiluje się ale przy uruchamianiu wyrzuca błąd przy StartDoc (i oczywiście przy wszystkich innych :P).
C/C++
#include <windows.h>

int main() {
    PRINTER_INFO_5 * pinfo;
    DWORD dwsize, dwcount;
    EnumPrinters( PRINTER_ENUM_DEFAULT, NULL, 5, NULL, 0, & dwsize, & dwcount );
    pinfo =( PRINTER_INFO_5 * ) malloc( dwsize );
    EnumPrinters( PRINTER_ENUM_DEFAULT, NULL, 5,( PBYTE ) pinfo, dwsize, & dwsize, & dwcount );
    HDC hdc = CreateDC( NULL, NULL, pinfo->pPrinterName, NULL );
    DOCINFO di;
    di.cbSize = sizeof( DOCINFO );
    di.lpszDocName = "testdoc";
    di.lpszOutput = NULL;
    di.lpszDatatype = NULL;
    di.fwType = 0;
    if( StartDoc( hdc, & di ) <= 0 ) MessageBox( NULL, "nie mozna rozpoczac dokumentu", "wtf?", MB_ICONERROR );
   
    if( StartPage( hdc ) <= 0 ) MessageBox( NULL, "nie mozna rozpoczac strony", "wtf?", MB_ICONERROR );
   
    LPCSTR buf = "wtf?! wydrukowalo..";
    TextOut( hdc, 10, 10, buf, strlen( buf ) );
    if( EndPage( hdc ) <= 0 ) MessageBox( NULL, "nie mozna zakonczyc strony", "wtf?", MB_ICONERROR );
   
    if( EndDoc( hdc ) <= 0 ) MessageBox( NULL, "nie mozna zakonczyc dokumentu", "wtf?", MB_ICONERROR );
   
    DeleteDC( hdc );
    free( pinfo );
    return 0;
}

z góry dzięki za pomoc. pewnie to wina jakiegoś głupiego błędu
P-25333
malan
» 2010-12-19 13:58:54
Sprawdzałeś, czy GetLastError coś krzyczy?
P-25334
pekfos
Temat założony przez niniejszego użytkownika
» 2010-12-19 15:01:16
wartość GetLastError to 0
P-25335
malan
» 2010-12-19 21:21:30
A EnumPrinters zwraca true?
P-25344
pekfos
Temat założony przez niniejszego użytkownika
» 2010-12-20 15:13:30
obydwa wywołania zwracają TRUE
P-25370
DejaVu
» 2010-12-20 18:56:09
hdc!=NULL?
P-25376
pekfos
Temat założony przez niniejszego użytkownika
» 2010-12-20 19:26:34
trafiony. zwraca NULL. jaka może być przyczyna?

chyba nazwa drukarki powinna być jako druga, zaraz sprawdzę..
P-25377
malan
» 2010-12-20 19:29:56
CreateDC
Return Values

The handle to a device context for the specified device indicates success.
NULL indicates failure.
To get extended error information, call GetLastError.
P-25378
« 1 » 2
  Strona 1 z 2 Następna strona