본문 바로가기
프로그래밍/DB/파워빌더

[파워빌더] 외부DLL를 이용한 프로그래밍...

by 아유카와 2011. 7. 2.
안녕하세요??
파워빌더에서 가능한 모든것을을 처리 하면 좋겠지만 그렇지 못한 경우는 외부 프로그래밍 언어를 
사용해서 DLL을 만들어 사용하게 되지요.
DLL을 이용하는 방법은 3가지 정도가 있는것으로 알고 있습니다. 사실 저도 파워빌더 8-9년차에 
접어 들었지만 이 DLL을 사용하는 것 만큼은 아직 많이 어렵습니다.( 헤딩을 많이 해야 합니다. )
제가 알고 있는 방법은 3가지 방법이 사용 가능한것으로 알고 있습니다.
1. 대부분 파워빌더 개발자분들이 알고 있는 익스터널 펑션에 선언해서 사용 하는 방법 아마 대부분은
여기에서 해결이 가능 하리라 봅니다.
2. 두번째는 Create OLE 컨트롤을 이용하는 방법(MSCOM 등을 이용한 RS232 통신 등)에 많이 사용들
하시리라 생각합니다. OLE에 OCX나 DLL을 등록해서 사용할수도 있고요..
3. 마지막으로 OCX나 DLL을 regsvr32로 DLL 등록 후 사용하는 방법입니다.
( 이때 중요한것은 DLL을 등록 할 때 하나의 DLL이 아니 여러개의 DLL이 있을 경우 같은 폴더에 넣어서
  등록을 해주셔야 합니다. DLL 약자가 동적라이브러리 어쩌고니 같이 사용되는 DLL이 없을 경우 등록
  에 실패하는 경험을 하시게 됩니다. ^^ )
  DLL이 잘 등록이 되었다면 ConnectToNewObject 을 사용해서 해당 클래스를 불러와서 사용 하시면 
  됩니다. 일반적으로 ASP에서 Server.CreateObject등으로 사용되고 있는 방법은  파워빌더에서
  ConnectToNewObject 로 사용하시면 잘 대응 됨을 알 수 있습니다.
  EX) Server.createobject("adodb.connection") ===> ConnectTONewOjbect("adodb.connection") 로
  사용할수 있겠지요. 앞 adodb를 클래스 명, 뒤에 connection을 컴포넌트이름
  DLL에 사용되어진 클래스명, 컴포넌트이름만 제대로 알고 있다면 쉽게 사용 할 수가 있을것입니다.
  http://l2j.co.kr/1515  이 예제를 보시면 비베에서 DLL을 만들경우 프로젝트명이 클래스명
  (위에서 adodb)이 되며  클래스모듈이 컴포넌트이름(위에서 connection)이 된다는걸 알 수 있습니다.