Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[13428] 안녕하세요, 고수님들.. 통장프린터(PR2)기 출력 급 질문드립니다..ㅠㅠ
vortex [vortex2000] 2285 읽음    2010-09-29 21:04
통장 프린터기에 고객 서비스 차원에서 통장크기의 프린트 용지를 출력하려고 합니다.

은행 프로그램은 아니구요..

아래 소스는 C로 짜여진듯 합니다.
통장프린터 출력 프린터 소스중 일부인데요.
C에서는
BYTE bNumOneLine[100] = {"01234567890123456789\n\r"}; 바이트 배열 선언하고
nRet = UsbPrintPbprData( bNumOneLine ); 이렇게 배열을 통째로 넘깁니다.
근데 문제는
UsbPrintPbprData 요넘에 대한 정보를 보아하니
Function int UsbPrintPbprData (BYTE *szPrintingData) <--- 이렇게 되어있더군요..

그렇다면 델파이에서는 어떻게 파라미터를 넘겨야 하는건가요??
byte형 배열을 선언해서
.... := UsbPrintPbprData(Mb_Value[1]); 이렇게 해서는 절대 안넘어가구요,
Mb_Value : Byte;
Mb_Value := 12;
.... := UsbPrintPbprData(Mb_Value); 이건 더더욱 안되구요...ㅠㅠ

고수님들의 가르침을 얻고자 이렇게 무식한 델초보가 글을 올립니다.
사정이 급해서...ㅠㅠ
답변좀 부탁드리겠습니다.

요넘땜에 일주일 째 식겁하고 있습니다..ㅠㅠ

int NEAR PrintingTest( HWND hWnd )
{                               
int i;
int nRet;                                                                         
BYTE szMsg[100] = {""};
BYTE bNumOneLine[100] = {"01234567890123456789\n\r"};

nRet = UsbOpenPbpr( 12, 5, 1, 190 );

for( i = gnPrintLineNum; i < 15; i++ ){
  switch( nRet ){
   case SUCCESS:      //100303 hj_ 테스트 함수 추가           
    // -------------------------------------
    // 절대라인 5라인 위치
    // 12 CPI
    // 5 LPI
    // -------------------------------------
    if( i == 0 ) {
     UsbAbsoluteVertical( 5 );
     UsbDefineLpi( 3 );
     UsbDefineCpi( 10 );
     nRet = UsbPrintPbprData( bNumOneLine );
     gnPrintLineNum = i;
    }
    // -------------------------------------
   
    // -------------------------------------
    // 절대라인 15라인 위치
    // 10 CPI
    // 3 LPI
    // -------------------------------------
    else if( i == 5 ) {
     UsbAbsoluteVertical( 15 );
     UsbDefineLpi( 5 );
     UsbDefineCpi( 12 );
     nRet = UsbPrintPbprData( bNumOneLine );
     gnPrintLineNum = i;
    }
    // -------------------------------------
   
    // -------------------------------------
    // 가로 확대
    // 가로 확대 해제
    // -------------------------------------
    else if( i == 10 ) {
     UsbDoubleWidth( );
     nRet = UsbPrintPbprData( bNumOneLine );
     UsbClearsDoubleWidth( );
     gnPrintLineNum = i;
    }
    // -------------------------------------
   
    // -------------------------------------
    // 위에 설정된 기본값 설정됨
    // -------------------------------------
    else {
     nRet = UsbPrintPbprData( bNumOneLine );
     gnPrintLineNum = i;
    }
    // -------------------------------------
    break;
   
   case NO_PAPER:
    MessageBox( hWnd, "종이를 삽입하고 Enter를 치세요", "종이 없음", MB_OK );
    PrintingTest( hWnd );
    return( 0 ); 
   
   case DOCUMENT_TOTALLY_INSERTED:
    MessageBox( hWnd, "정리할 내용이 남아있습니다.\n\n다음장을 삽입하세요", "계속", MB_OK );
    PrintingTest( hWnd );
    return( 0 );
       
   default:
    wsprintf( szMsg, "Error Code : %d\n# %s", nRet, szFormatMsg[nRet-1] );
    MessageBox( hWnd, szMsg, "Error", MB_OK );
    return( 0 );
  } // switch() endA
} // for() end
                               
// To Expel Paper                               
UsbExpelPaper();
gnPrintLineNum = 0;
return( SUCCESS );
}

+ -

관련 글 리스트
13428 안녕하세요, 고수님들.. 통장프린터(PR2)기 출력 급 질문드립니다..ㅠㅠ vortex 2285 2010/09/29
13441     Re:안녕하세요, 고수님들.. 통장프린터(PR2)기 출력 급 질문드립니다..ㅠㅠ COGNEX 2243 2010/10/15
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.