비주얼베이직에서 만든 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으로 선언한 변수의 값을 델파이프로그램에서 읽어오고 싶은데 어떻게 읽어와야할지 잘 모르겠습니다.
비베에서는 아무것도 아닌데 델파이에서는 어떻게 해야할지...
도움부탁드립니다.
> 비주얼베이직에서 만든 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 자리에 넣으세요...
아마 잘 해결 될것입니다...
자세한 것은 헬프를 참조하시고요...
만일 더궁금한게 있다면 메일을 .....