Q&A

  • [질문] DLL을 호출하여 두 개 이상의 리턴값을 받으려면?
메인 프로그램에서 DLL을 호출하는 프로그램에서 질문드립니다.
데이터를 쿼리하여 조건에 맞는 데이터를 아래처럼 SELECT합니다.

1번 데이터 : 1234, 홍길동, 재직
2번 데이터 : 2314, 동길홍, 퇴직
3번 데이터 : 5623, 길동홍, 재직

쿼리로 데이터를 가져와서 SELECT된 데이터를 리턴받으려고 합니다.
1,2,3번의 각 데이터는 구조체로 받습니다.
반복문으로 처리해야 하겠는데 잘 안되네요.

제가 시도해본 방법입니다.
1. DLL 프로그램에서 데이터를 쿼리해서 SELECT된 레코드 건수를 구합니다.
2. DLL 프로그램에서 레코드 건수만큼 반복적으로 DLL을 호출하여 리턴값을 받습니다.
3. 레코드가 끝이면 DLL 프로그램 호출을 종료합니다.

스트링리스트를 쓰면 C나 VB같은 다른 언어에서 호출해도 문제가 없을까요?
1  COMMENTS
  • Profile
    최용일 2009.02.24 01:05
    님께서 하셨던 방법은 COM등에서 많이 쓰이는 방식인데... 일반 DLL에서는 조금 힘들듯하구요...
    일반적으로 많이 쓰이는 방식은 배열로 통째로 넘겨주거나, API에서 많이 쓰이는 방식으로 Call Back 함수를 이용하는 방법이 있습니다.
    TStringList같은 객체는 같은 언어에서만 통용됩니다. 다른 언어에서도 호출하실려면 객체는 쓰시면 안되고 양쪽에서 통용되는 데이터형만 쓰셔야 합니다.