■모듈사용법
- 함수 long Edit4Print(CHAR* _pSrc, CHAR* _pDes)
- 인자 [I] _pSrc : 출력문자열
[O] _pDes : 편집문자열
- 결과값 편집문자열 길이(최대 4096 byte를 반환)
■예제
Public Declare Function Edit4Print Lib "XCommon.DLL" _
(ByVal SData As String, ByVal DData as String) as integer
Dim SData as String
Dim DData as String * 4096
Dim nLen as integer
SData = "도시바테크코리아"
nLen = Edit4Print(SData, DData)
위의 코드는 제가 도시바에서 받은 모듈 사용법입니다.
아래는 델파이에서 코딩한 부분입니다.
implementation
//도시바 프린트기 에서 한글출력하는 함수
Function Edit4Print(SData:String; DData:String):integer;stdcall;external 'XCommon.dll'
위에서 함수를 선언하고
procedure TFrmSale.PrintReceipt;
var
DData:string;
nLen:integer;
T1:string;
begin
T1="안녕하세요";
nLen := Edit4Print(T1,DData);
showmessage( DData);
end;
이렇게 코딩을 하면 자꾸 에러가 납니다. 고수님들 도와주세요
Aceess viloation at address 1000128c in module 'XCommon.dll'. write of address 00404e25
라는 에러가 아옵니다.고수님들 도와주세요
그리고 dll 파일을 같이 올립니다.
Pointer 형으로 넘겨야 합니다.
Delphi에서 String 형과 C 에서의 Char * 형이 달라서 나오는 겁니다.
다음과 같이 하시고 DData에는 메모리가 할당 되어야 겠죠.
Function Edit4Print(SData:PChar; DData:PChar):integer;stdcall;external 'XCommon.dll'
var
SData : string;
DData : array[0..200] of char;
sdata := 'abcdefg';
ret := Edit4Print(PChar(SData), @DData);
그럼....