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 <[email protected]> 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 <[email protected]>
> 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 <
>> [email protected]> 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: [email protected]
>>> Admin: http://delphi.org.nz/mailman/listinfo/delphi
>>> Unsubscribe: send an email to [email protected] with
>>> Subject: unsubscribe
>>>
>>
>>
>> _______________________________________________
>> NZ Borland Developers Group - Delphi mailing list
>> Post: [email protected]
>> Admin: http://delphi.org.nz/mailman/listinfo/delphi
>> Unsubscribe: send an email to [email protected] with
>> Subject: unsubscribe
>>
>
>
> _______________________________________________
> NZ Borland Developers Group - Delphi mailing list
> Post: [email protected]
> Admin: http://delphi.org.nz/mailman/listinfo/delphi
> Unsubscribe: send an email to [email protected] with
> Subject: unsubscribe
>
_______________________________________________
NZ Borland Developers Group - Delphi mailing list
Post: [email protected]
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to [email protected] with 
Subject: unsubscribe

Reply via email to