형태 wrote:
> DLL을 사용하려합니다. VC++에서 사용한 것을 Delphi에서 사용하려고 하는데
> 이상하게 않되는데요
> 'Invalid variation Conversion'이라는 메세지가 DNS_OpenCard()을
> 사용하려면 나옵니다. 제가 초보여서 무엇을 잘못했는지 모르겠어요
> 어제도 날세기했는데..... 도와주세요 고수님들....
>
>
> VC++ 에서 사용한 것
> 1.
> typedef BOOL (WINAPI *dnsOpenCard)
> ( DWORD *CardHandle, TCHAR *CardName, void *Module, DWORD Flags );
>
> 2.
> dnsOpenCard DNS_OpenCard;
>
> 3.
> if((DNS_OpenCard=(dnsOpenCard)GetProcAddress(DN_ScanDll,"DNS_OpenCard"))==NULL){
> return FALSE;
> }
>
> 4.
> char *AcessPoint = "Driver250"; // 5136DN-ISA
> if(DNInterface->DNS_OpenCard(&CardHandle,AcessPoint,NULL,0)==FALSE){
> //Error 처리
> }
>
>
> Delphi에서 사용한것
>
> 1.
> function DNS_OpenCard(CardHandle:PDWord; CardName: string; Module:DWord; Flags:DWord)
> :Boolean;stdcall;
>
> 2.
> function DNS_OpenCard(CardHandle:PDWord; CardName:string; Module:Dword; Flags:DWord):Boolean ; stdcall;
> external 'dnscan32.dll' name 'DNS_OpenCard';
>
> 3.
> strCardName := 'Driver250'; //strCardName : string
> if DNS_OpenCard(@CardHandle, strCardName, Null, 0) = false then begin//여그서 에러가 나옵니다.
> ShowMessage('DNS_OpenCard Error');
> exit;
> end;
>
음..정확한지 모르겠습니다. DNS_OpenCard의 Boolean을 정수형으로 해보면 어떨까요?
아님,,,Boolean형으로 형변환을..성공하시길...
제가 함수 파라메터 중에 Module을 Dword로 정해 놓고
Null값을 넘겼더군요 아우우우우우우우
고생한것 생각하면 으으으으으으으
0 으로 고치니까 만사형통!!!!
다시한번 감사합니다.