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
[13249] vb에서 delphi로만든 dll에 array를 어떻게 넘기나요?
자기야뜨자 [] 1734 읽음    2010-05-29 13:05
VBA에서 다음과 같이 정의
Declare Sub MAIN2 Lib "C:\WORK\dlltest.dll" (ByRef a As Long)

Sub MyMacros()
            Dim ccc1(5) As Long
            ccc1(0) = 10
            ccc1(1) = 20
            ccc1(2) = 30
            ccc1(3) = 40
            ccc1(4) = 50
            ccc1(5) = 60
            MAIN2 (ccc1(0))
end Sub
===================================

DELPHI에서 다음과 같이 정의(dlltest.dll)
library DllTest;
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
{$R *.res}

procedure MAIN2(var a:array of integer);stdcall;
begin
        showmessage(inttostr(a[0]));
        showmessage(inttostr(a[1]));
        showmessage(inttostr(a[2]));
        showmessage(inttostr(a[3]));
end;

=====================================
이렇게 delphi에서 dll을 만들고 vba에서 위 코드를 실행하면 첫번째는 10을 잘찍는데, 그다음부터는 가비지가 들어가 있습니다.
length(a)로 검토해봐도 길이가 0네요;;

vb에서 delphi로만든 dll에 array를 어떻게 넘기는지 잘 모르겠습니다.
고수님 도와주세요!

+ -

관련 글 리스트
13249 vb에서 delphi로만든 dll에 array를 어떻게 넘기나요? 자기야뜨자 1734 2010/05/29
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.