통장 프린터기에 고객 서비스 차원에서 통장크기의 프린트 용지를 출력하려고 합니다.
은행 프로그램은 아니구요..
아래 소스는 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 );
}