Q&A

  • (다시한번)비주얼베이직에서 만든 DLL을 델파이에서 사용..
비주얼베이직에서 만든 DLL을 델파이에서 사용하려고 합니다.

DLL이름은 PrjDLLTest.dll이고 Windows/system아래로 복사를 해넣고 DLL등록도 했습니다. 비주얼베이직에서는 정상적으로 테스트가 다 되었는데요 델파이에서 이 DLL을 사용하려고 하면 '프로그램시작오류'라는 창이 뜨고 'unable to create process'메시지가 뜹니다. 이 메시지는 DLL화일이 없을때 나는 에러라고 하던데요. 화일이 분명히 있고 비베에서는 정상적으로 사용가능하거든요. 델파이에서 제가 잘못 사용했는가 해서 코드를 올립니다.



var

FormHMenu: TFormHMenu;

UserName: String;



implementation



Procedure GetNetworkUserID; external 'PrjDLLTest.dll';



{$R *.DFM}



델파이에서 위와 같이 선언을 했고 참고로 비베코드로 GetNetworkUserID란 프로시저를 작성한 것을 DLL로 만들었습니다.



한가지 더 질문을 드리자면 GetNetworkUserID 프로시저(비베)에서 Public으로 선언한 변수의 값을 델파이프로그램에서 읽어오고 싶은데 어떻게 읽어와야할지 잘 모르겠습니다.

비베에서는 아무것도 아닌데 델파이에서는 어떻게 해야할지...

도움부탁드립니다.



1  COMMENTS
  • Profile
    류민철 1999.11.26 20:01
    정유라 wrote:

    > 비주얼베이직에서 만든 DLL을 델파이에서 사용하려고 합니다.

    > DLL이름은 PrjDLLTest.dll이고 Windows/system아래로 복사를 해넣고 DLL등록도 했습니다. 비주얼베이직에서는 정상적으로 테스트가 다 되었는데요 델파이에서 이 DLL을 사용하려고 하면 '프로그램시작오류'라는 창이 뜨고 'unable to create process'메시지가 뜹니다. 이 메시지는 DLL화일이 없을때 나는 에러라고 하던데요. 화일이 분명히 있고 비베에서는 정상적으로 사용가능하거든요. 델파이에서 제가 잘못 사용했는가 해서 코드를 올립니다.

    >

    > var

    > FormHMenu: TFormHMenu;

    > UserName: String;

    >

    > implementation

    >

    > Procedure GetNetworkUserID; external 'PrjDLLTest.dll';

    >

    > {$R *.DFM}

    >

    > 델파이에서 위와 같이 선언을 했고 참고로 비베코드로 GetNetworkUserID란 프로시저를 작성한 것을 DLL로 만들었습니다.

    >

    > 한가지 더 질문을 드리자면 GetNetworkUserID 프로시저(비베)에서 Public으로 선언한 변수의 값을 델파이프로그램에서 읽어오고 싶은데 어떻게 읽어와야할지 잘 모르겠습니다.

    > 비베에서는 아무것도 아닌데 델파이에서는 어떻게 해야할지...

    > 도움부탁드립니다.

    >



    Procedure GetNetworkUserID; external 'PrjDLLTest.dll';



    위의 선언 부분에서...



    Procedure GetNetworkUserID;stdcall; external 'PrjDLLTest.dll';



    로 바뀌보세요...

    그래도 문제가 있으면...

    cdecl 을 stdstdcall 자리에 넣으세요...



    아마 잘 해결 될것입니다...



    자세한 것은 헬프를 참조하시고요...



    만일 더궁금한게 있다면 메일을 .....