|Perl: the Markov chain saw|
Wow..! That's quite a bit of research :). Those are exactly my reference documents.
Yes, I am setting the value of the KSENT_TXInit as per the document (and getting an "all OK" return from the call) before calling the KSENT_TX function
I wasn't so sure of the description in the document regarding the length of the information to be sent and hence contacted the developer of the DLL who replied saying that "the *data is a pointer to an array of unsigned chars were each char is a SENT nibble"
So i tried quite a few possibilities in addition to the one mentioned in the original query
passing only the 3 nibbles as 3 unsigned chars my $data_ref = pack ('U0C*', 0x01,0x05,0x05);
and passing the 3 nibbles in 2 octetsmy $data_ref = pack ('U0C*', 0x01,0x55);
and passing all the 8 nibbles as 8 unsigned charsmy $data_ref = pack ('U0C*', 0x08,0x01,0x05,0x05,0x00,0x00,0x0E,0x00);
All of it still crashes with the same error. On hindsight, I think the correct windows error would be "Perl interpreter encountered an issue". I will try dumping the details of the failure if it helps further.
In reply to Re^6: How to pass a pointer to an array of 'unsigned char' C data type with Win32::API (debug)