[DUG] RFID - EAccess violation

Jolyon Smith jsmith at deltics.co.nz
Thu May 28 15:41:23 NZST 2015


Fair enough.  That wasn't entirely clear so thought it worth clarifying in
case the OP was confused into thinking this was somehow involved in the AV.

(Incidentally, "buffer" is used in the original code - it receives the
keydata string via the call to StrPCopy.  "key" ends up as effectively
@buffer[0]).

On 28 May 2015 at 15:31, Karl Reynolds <kreynolds at chocfishsoft.co.nz> wrote:

> Jolyon, I was pointing out a separate error that had nothing to do with
> the AV he was getting.
>
> *> there looks to be an error in your code even if it works*
>
> Cheers,
> Carl
>
> On Thu, May 28, 2015 at 2:43 PM, Jolyon Smith <jsmith at deltics.co.nz>
> wrote:
>
>> @Carl,
>>
>> Although the code probably is incorrect in the way that it references
>> buffer after the call, rather than bufferr, this in itself will not cause
>> an AV since both buffer and bufferr are both statically allocated arrays
>> and thus references to items in these arrays will be valid, even if not
>> correct, as long as those references are within the bounds of the array,
>> which they are in this case.
>>
>> On 28 May 2015 at 12:33, Karl Reynolds <kreynolds at chocfishsoft.co.nz>
>> wrote:
>>
>>> I don't know the API_PCDRead function. But there looks to be an error in
>>> your code even if it works. You are passing bufferr (two 'r's) to the
>>> function but referring to buffer (one 'r') afterwards, which wasn't used
>>> (unless there's other code you didn't show). So you need to look at that.
>>>
>>> That aside, for the bit leading up to the call, try something like:
>>>
>>> var
>>>   key, bufferr: PChar;
>>>   keydata: string;
>>>   buffdata: array[0..255] of char;
>>>   ...
>>> begin
>>>  // Allocate a string of six consecutive $FFs
>>>   keydata := #255#255#255#255#255#255;
>>>
>>>  // Convert to a PChar, an easy way to avoid having to allocate memory
>>> explicitly
>>>   key := PChar(keydata);
>>>
>>> // Once again avoid having to allocate memory explicitly
>>> // Point bufferr at the address of an array of 256 characters
>>>   bufferr := PChar(@buffdata);
>>>
>>>   receive:=API_PCDRead(0,0,$00,10,1,key,bufferr);
>>>
>>>   ...
>>>
>>> Cheers,
>>> Carl
>>>
>>> On Thu, May 28, 2015 at 11:33 AM, Marshland Engineering <
>>> marshland at marshland.co.nz> wrote:
>>>
>>>> Thanks for the replies.
>>>>
>>>> this is the line
>>>>
>>>> >   receive:=API_PCDRead(0,0,$00,10,1,key,bufferr);
>>>>
>>>> I'm way out my depth with the workings of this function. I just do
>>>> simple
>>>> coding - A ex dBase3 programmer.
>>>>
>>>> I took the sample code that the RFID supplier gave, stripped off
>>>> everything I
>>>> didn't need other than the read line for RFID card and then copied the
>>>> bits
>>>> into my program which now crashes.
>>>>
>>>> I was wondering if the XPMENU call or something like that is
>>>> interfering with
>>>> other modules ?
>>>>
>>>> My debugging is limited to finding the line with the error.
>>>>
>>>> Both programs are run in Delphi 6, same machine and same environment.
>>>>
>>>> I can't find how to code this, where ever I put it, it crashes. -
>>>> Expected
>>>> expression but ARRAY found.
>>>>
>>>>    const
>>>>      KEY = array[0..6] of Byte = ($FF,$FF,$FF,$FF,$FF,$FF,$00);
>>>>
>>>> Thanks Wallace.
>>>>
>>>>
>>>> _______________________________________________
>>>> NZ Borland Developers Group - Delphi mailing list
>>>> Post: delphi at listserver.123.net.nz
>>>> Admin: http://delphi.org.nz/mailman/listinfo/delphi
>>>> Unsubscribe: send an email to delphi-request at listserver.123.net.nz
>>>> with Subject: unsubscribe
>>>>
>>>
>>>
>>> _______________________________________________
>>> NZ Borland Developers Group - Delphi mailing list
>>> Post: delphi at listserver.123.net.nz
>>> Admin: http://delphi.org.nz/mailman/listinfo/delphi
>>> Unsubscribe: send an email to delphi-request at listserver.123.net.nz with
>>> Subject: unsubscribe
>>>
>>
>>
>> _______________________________________________
>> NZ Borland Developers Group - Delphi mailing list
>> Post: delphi at listserver.123.net.nz
>> Admin: http://delphi.org.nz/mailman/listinfo/delphi
>> Unsubscribe: send an email to delphi-request at listserver.123.net.nz with
>> Subject: unsubscribe
>>
>
>
> _______________________________________________
> NZ Borland Developers Group - Delphi mailing list
> Post: delphi at listserver.123.net.nz
> Admin: http://delphi.org.nz/mailman/listinfo/delphi
> Unsubscribe: send an email to delphi-request at listserver.123.net.nz with
> Subject: unsubscribe
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://listserver.123.net.nz/pipermail/delphi/attachments/20150528/6d9ede84/attachment-0001.html 


More information about the Delphi mailing list