Q&A

  • ElnOutError with message I/O 1784 에러...
안녕 하세요.
DLL의 라이브러리와 연동하여 프로그램을 작성 하는데 다음과 같은 문제가
발생하여 여러분의 도움을 기다리고 있습니다.

해당 함수의 프로토 타입은 다음과 같습니다.

function get_data(name:String;
  var data_name:Variant;
  var data_size:LongInt;
  var data:Pointer):Integer;

이 함수를 name이라는 변수에 데이터를 가져올 키값을 넣어 호출 하면,
data_name에 해당 데이터의 이름, data_size에 데이터 크기, data에 현재 데이터가
들어가 있는 메모리의 시작 주소의 값이 셋팅 됩니다.

이 함수를 호출 한 다음에 다음과 같이 데이터를 저장 하려고 하는데, 문제가 발생하여
진행을 못하고 있습니다.

   rv := get_data(name, dataName, dataSize, Data);
    
   AssignFile (dataFile, savedName);
   Rewrite (dataFile);
!! BlockWrite (dataFile, Data^, dataSize, BytesWritten);
   CloseFile (imageFile);

!! 부분의 BlockWrite 에서 오류가 발생하는데 아무래도 Pointer 타입의
변수인 Data 때문에 발생 하는 것 같습니다.

오류 메시지는 다음과 같습니다.
"ElnOutError with message I/O error 1784"

여기서 1784의 의미는 무엇일까요? 이 에러 코드를 어디서 찾아볼수 있는지도 궁금 합니다.

해결의 실마리를 찾을 수 있도록 고수님들의 많은 도움 기다립니다.

좋은 하루 되세요~
1  COMMENTS
  • Profile
    최용일 2004.07.29 04:38
    안녕하세요. 최용일입니다.

    에러 메세지는 아래와 같구요...

    1784 The supplied user buffer is not valid for the requested operation. ERROR_INVALID_USER_BUFFER

    입출력 버퍼가 작아서 그런겁니다... dataSize가 입출력버퍼에 비해서 크니까 BlockWrite할때 여러개로 나누어서 파일에 쓰세요...

    TFileStream을 쓰시는 것도 좋은 방법이구요...

    ^^ 항상 즐코하세요...