질문과 답에 여러 사람들이 시간을 투자해서 답을 쓰는 이유는
그런 지식들이 쌓여 동일한 어려움을 겪는 분들에게
도움이 되길 바래서일겁니다.
아래 유사한 질문이 있었고, 그에 대한 답글이 있었는데
그 방법을 적용하여 문제가 해결되었는지에 대한 언급은
없이 또 질문을 올리셨군요.
이래서야 이것이 지식으로서의 가치가 있을까요?
라미엘 님이 쓰신 글 :
: 염치불구하고 다시 질문올립니다. 아래 dll관련 파라메터 질문을 올렸는데 다른 부분에서 에러가 나서 답답한 마음에 재질문올립니다. dll개발사에서 보내준 vc6.0샘플 소스에는 dll함수를 external선언할때 char*로 파라메터를 설정했는데 델파이2009로 설정할때 PChar 또는 PAnsiChar로 설정해도 access violation에러가 납니다. 특이한 것은 델파이 자체에서 나는 에러가 아니라 dll내부에서 나는 에러같습니다. 디버깅을 하면 다음 루틴(에러확인 루틴)으로 넘어가는데 그 이후 첨부파일과 같은 메세지가 뜹니다.
: 고수님들 다시한번만 도와주세요...
:
: //VC소스
:
: #ifdef __cplusplus
: extern "C"
: {
: #endif
: BKV3_API int WINAPI BK_ScanToBMPFile(char *upperName, char *bottomName);
: #ifdef __cplusplus
: }
: #endif
:
:
: void aaaDLG::OnScan()
: {
: int rc;
:
:
: rc = BK_ScanToBMPFile((char *)(LPCSTR)m_strUpperName, (char *)(LPCSTR)m_strBottomName);
: if (rc != 1) {
: EndWaitCursor();
: sprintf(szString, "No Paper or Scan Error !, rc = %d", rc);
: MessageBox(szString, "BKV3", MB_OK);
: return;
: }
: }
:
:
: //델파이 소스
:
: function BK_ScanToBMPFile(upperName:PAnsiChar; bottomName:PAnsiChar):integer cdecl; external 'BKV3.dll';
:
:
: procedure TForm1.Button1Click(Sender: TObject);
:
: var FrontFilePath, BackFilePath:String;
: begin
:
: FrontFilePath := 'aaa.jpg' ;
: BackFilePath := 'bbb.jpg' ;
: if BK_ScanToBMPFile(PAnsiChar(AnsiString(FrontFilePath)),PAnsiChar(AnsiString(BackFilePath)))<>1 then //정상 실행되지 않아 에러체크루틴으로 들어갑니다.
: begin
: result := '스캔실패'; //<<====에러 메세지 출현 지점
: exit;
: end;
: end;
:
|