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
[14804] Re:Re:[질문]dll함수 호출시 vc에서 char*로 보내는 파라메터는 PChar으로하면 에러가 납니다.
라미엘 [] 2085 읽음    2013-10-10 15:04
아! 아래 답변 주신 분이신가요. 제가 델파이 업무를 맡은지 얼마 되지 않았는데 막히는 부분이 있어 아래 답변주신것에 대해 자세히 언급을 못했네요... 죄송합니다. 우선 아래 게시글에서 주신 답변대로 해보았으나 잘되지않았습니다. 그래서 델마당에 같은 질문을 올려서 답변을 받은 것이 되어서 다음 루틴을 진행을 했는데 에러가 나서 재질문을 올렸습니다. 계속된 밤샘작업에 위에서 기한압박을 해서 제가 올린 질문에 책임을 다하지 못한점 다시한번 죄송합니다.
  그리고 아래 질문은 dll함수를 external하는 부분을  function BK_SetScanParameter(var pScanParam : ScanParameter):integer cdecl; external 'BKV3.dll'; 로 선언하니 해당 루틴은 에러없이 진행되었습니다.
civilian 님이 쓰신 글 :
: 질문과 답에 여러 사람들이 시간을 투자해서 답을 쓰는 이유는
: 그런 지식들이 쌓여 동일한 어려움을 겪는 분들에게
: 도움이 되길 바래서일겁니다.
:
: 아래 유사한 질문이 있었고, 그에 대한 답글이 있었는데
: 그 방법을 적용하여 문제가 해결되었는지에 대한 언급은
: 없이 또 질문을 올리셨군요.
: 이래서야 이것이 지식으로서의 가치가 있을까요?
:
: 라미엘 님이 쓰신 글 :
: : 염치불구하고 다시 질문올립니다. 아래 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;
: :

+ -

관련 글 리스트
14802 [질문]dll함수 호출시 vc에서 char*로 보내는 파라메터는 PChar으로하면 에러가 납니다. 라미엘 1903 2013/10/10
14808     Re:[질문]dll함수 호출시 vc에서 char*로 보내는 파라메터는 PChar으로하면 에러가 납니다. DigitalNomad 2058 2013/10/11
14809         Re:Re:[질문]dll함수 호출시 vc에서 char*로 보내는 파라메터는 PChar으로하면 에러가 납니다. 라미엘 2084 2013/10/12
14810             Re:Re:Re:[질문]dll함수 호출시 vc에서 char*로 보내는 파라메터는 PChar으로하면 에러가 납니다. DigitalNomad 1879 2013/10/12
14811                 Re:Re:Re:Re:[질문]dll함수 호출시 vc에서 char*로 보내는 파라메터는 PChar으로하면 에러가 납니다. 라미엘 1912 2013/10/13
14812                     Re:Re:Re:Re:Re:[질문]dll함수 호출시 vc에서 char*로 보내는 파라메터는 PChar으로하면 에러가 납니다. DigitalNomad 2566 2013/10/13
14813                         감사합니다. 덕분에 잘 해결되었습니다. 라미엘 1861 2013/10/14
14803     Re:[질문]dll함수 호출시 vc에서 char*로 보내는 파라메터는 PChar으로하면 에러가 납니다. civilian 2043 2013/10/10
14804         Re:Re:[질문]dll함수 호출시 vc에서 char*로 보내는 파라메터는 PChar으로하면 에러가 납니다. 라미엘 2085 2013/10/10
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.