Q&A

  • Re: DLL함수 VC++에서 도는데 Delphi에서는.... 제가 잘못?
형태 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형으로 형변환을..성공하시길...

1  COMMENTS
  • Profile
    형태 2001.11.24 04:33
    답변에 정말 감사 드립니다.



    제가 함수 파라메터 중에 Module을 Dword로 정해 놓고

    Null값을 넘겼더군요 아우우우우우우우

    고생한것 생각하면 으으으으으으으



    0 으로 고치니까 만사형통!!!!

    다시한번 감사합니다.