자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다. 
  • 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)

본 게시판은 개발자들이 자유롭게 질문과 답변을 공유하는 게시판입니다.
* 따라서 최대한 정중하게 질문을 올려 주세요.
* 질문을 상세히 작성해 주실 수록 좋은 답변이 올라 옵니다.
* 다른 분들도 참고할 수 있도록 결과 댓글 필수(또는 감사 댓글)
(결과 댓글을 달지 않는 경우 다음 질문에 대한 답변이 달리지 않는 불이익이 있을 수 있습니다.)
-----------------------------------------------------------------------------------------------

델파이로  DLL 을 만들어서 Node JS 와 인터페이스 하고 있습니다.

 

DLL 내부에서, FireDAC 의 FDConnection + FDQuery 콤포넌트를 이용해서 자료를 잘 읽고 쓰고 하고 있습니다.

 

문제는, 해당 DLL 을 불러다가 사용하는 다른 프로그램을 종료할 때  Runtime ERROR 216 이 발생합니다.

 

FDConnection 으로 PostgresSql 을 연결해서 사용할 때는 문제가 없는데 FireBird DB 연결 후 종료 시 에러가 발생합니다.

해당 프로그램에서 DB 연결을 끊어놓고 종료를 하면 문제가 발생하지 않는 걸 보아,

예측컨데 DLL 의 FDConnection 을 통해 연결된 FireBird( FDConnection ) 문제로 보입니다.

 

그래서, 

DLLMain 의 DLL_PROCESS_DETACH 이벤트 발생 시 FDConnection을 끊어주는 문장을 실행시켰지만

동작하지 않습니다.  모래시계가 잠깐 나오다가..DLL 은 종료가 되지만 DLL을 호출한 프로그램은 런타임오류가 발생합니다.

 

혹시, FireBird 와 관련해서 다르게 해야하는 것이 있는 지 도움 부탁드립니다.

 

-------------- DLLMAIN 이벤트 처리 내용 -----------------

procedure DllMain(dwReason: DWORD);

begin

    case dwReason of

      // process attaches = 1

      DLL_PROCESS_ATTACH: begin

        OutputDebugString('Process Attach!');

        CoInitializeEx(nil, COINIT_APARTMENTTHREADED);

      end;

      // thread attaches = 2

      DLL_THREAD_ATTACH: begin

        OutputDebugString('Thread Attach');

      end;

      // thread detaches = 3

      DLL_THREAD_DETACH: begin

        OutputDebugString('Thread Detach');

      end;

      // process detaches = 0

      DLL_PROCESS_DETACH: begin

        FDConnection1.Close;  <----------------  동작이 되지 않습니다.  또는 FDConnection1.Connected := False; 도 동작하지 않습니다.

        OutputDebugString('Detach!');                ( FireBird 에서만 안됩니다.  PostgresSql 은 이상이 없습니다. )

        CoUninitialize;

      end;

    end;

end;

 

번호 제목 글쓴이 날짜 조회 수
공지 [프로그래밍 강의] 2021.6~2021.12 관리자 2015.01.22 19436
공지 유용한 관련 사이트 관리자2 2014.03.20 58348
공지 본 게시판은 개발자 여러분들의 질문과 답변을 공유하는 공간입니다. 관리자 2012.01.10 101856
393 웹소켓 사용 질문 [3] 나즈나 2018.01.07 1342
392 RAD 서버 운영환경에 설치중 오류 [2] file 노란바나나 2019.10.30 1344
391 [XE5] XE5에선 GCM 사용이 불가능한가요? [1] 와니 2014.10.17 1355
390 시리얼 통신 질문 드립니다. [3] 뮤뮤 2020.07.21 1357
389 [세미나] BaaS에서 아이디와 이메일 중복확인 기능을 제공하나요? [1] Humphery 2014.08.05 1358
388 서버컴퓨터로 파일 전송하는데 에러가발생해서 질문드립니다...!! [2] syc 2016.08.12 1363
387 안드로이드 스플래시 이미지 문의 드립니다. [2] 타락천사 2015.03.09 1366
386 DataSnap에서 NetWork 여러개인 경우 파빌신 2014.04.30 1368
385 환경파일에서 "The imported project file could not be loaded. '', hexadecimal value 0x01, is an invalid character." 오류 발생 시 조치사항 [4] Humphery 2014.11.28 1375
384 [세미나] XE7에서는 컴파일 크기가 개선되었나요? [1] Humphery 2014.09.17 1382
383 xe10.1에서 ActiveX , *.ocx 설치방법 부탁합니다 [3] 모나도 2016.11.04 1391
382 [세미나] 코드아카데미(BaaS 온라인 강의) 질문답변 Humphery 2014.07.30 1393
381 des암호화 복구화 대해서 알고 싶습니다 [1] 헨씀히포 2017.02.28 1398
380 WINEXEC 관련해서 문의드립니다 [3] file jcitec 2015.05.16 1400
379 [안드로이드] 앱 배포후 업데이트시 overwrite 안됩니다.해결방법좀 알려주세요 ㅠ. [2] 한사람 2016.03.27 1403
378 베를린에서 Tools-Option-Form Designer-Device-Embedded designer옵션이없어요 [4] 모나도 2016.08.04 1410
377 Delphi5, Paradox DB이용한 32bit 프로그램... [1] LucyKim 2014.08.19 1416
376 secure coding 가이드 문의 (delphi 용) 저팔계 2014.09.26 1418
375 블루투스 송수신 질문이 있습니다. [3] 데브순 2018.03.23 1419
374 Debugger present 라는 메세지는 언제 나오나요? 베스트드레곤 2014.05.12 1420