Click here to Skip to main content
15,910,787 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
GeneralRe: File I/O Problem Pin
scrname9-Mar-04 17:10
scrname9-Mar-04 17:10 
GeneralRe: File I/O Problem Pin
Christian Graus9-Mar-04 17:15
protectorChristian Graus9-Mar-04 17:15 
GeneralSetPercision in MFC Pin
MeterMan9-Mar-04 12:16
MeterMan9-Mar-04 12:16 
GeneralRe: SetPercision in MFC Pin
Ryan Binns9-Mar-04 17:52
Ryan Binns9-Mar-04 17:52 
GeneralRe: SetPercision in MFC Pin
MeterMan10-Mar-04 10:42
MeterMan10-Mar-04 10:42 
GeneralOnFIleOpen Current Directory Pin
Coremn9-Mar-04 12:11
Coremn9-Mar-04 12:11 
GeneralProblem with parsing a BYTE* Pin
__Cerb9-Mar-04 12:07
__Cerb9-Mar-04 12:07 
GeneralRe: Problem with parsing a BYTE* Pin
Curi0us_George9-Mar-04 12:35
Curi0us_George9-Mar-04 12:35 
TO get a hint as to the problem, you should have added an printf for "sizeof(aPacket)". In the context of the ParsePacket function, sizeof(aPacket) is 4, because ParsePacket recieves aPacket as a BYTE *, and on the 32-bit x86 architecture, all pointers are 4 bytes. The sizeof operator has no way of determining the length of an array pointed to by aPacket.

i.e.:
//-----
#include <windows.h>
#include <stdio.h>

int ParsePacket(BYTE *aPacket,short int iStartPos);


void main()
{
BYTE aPacket[] = {0x59,0x89,0x59,0x59,0x23,0x59,0x59,0x59,0x89,0x59,0x00,0x54,0x65};
printf("size (in main): %i\n",sizeof(aPacket));
int l = ParsePacket(aPacket,5);
printf("%d\n",l);
system("pause");
}



int ParsePacket(BYTE * aPacket,short int iStartPos)
{
bool bFound = false;
int iPos = 0;

printf("size (in ParsePacket): %i\n",sizeof(aPacket));
for (int i = 0;i < (sizeof(aPacket) - 1); i++)
{
printf("Test: %x\n",aPacket[i]);
}

return iPos;
}
//-----

outputs:
-----
size (in main): 13
size (in ParsePacket): 4
Test: 59
Test: 89
Test: 59
0
Press any key to continue . . .
-----

You need to pass the length of the array to the ParsePacket method.

i.e.:
//-----
#include <windows.h>
#include <stdio.h>

void ParsePacket(BYTE *aPacket,int aPacketLength);

void main()
{
BYTE aPacket[] = {0x59,0x89,0x59,0x59,0x23,0x59,0x59,0x59,0x89,0x59,0x00,0x54,0x65};
ParsePacket(aPacket,sizeof(aPacket));
system("pause");
}



void ParsePacket(BYTE * aPacket,int aPacketLength)
{
for (int i = 0; i < aPacketLength; i++)
{
printf("Test: %x\n",aPacket[i]);
}
}
//-----

outputs:
-----
Test: 59
Test: 89
Test: 59
Test: 59
Test: 23
Test: 59
Test: 59
Test: 59
Test: 89
Test: 59
Test: 0
Test: 54
Test: 65
Press any key to continue . . .
-----
GeneralRe: Problem with parsing a BYTE* Pin
__Cerb9-Mar-04 13:00
__Cerb9-Mar-04 13:00 
GeneralRe: Problem with parsing a BYTE* Pin
Curi0us_George9-Mar-04 17:03
Curi0us_George9-Mar-04 17:03 
QuestionAnyone has some experience with Windows 98 Enabled and Hebrew??? Pin
LukeV9-Mar-04 10:31
LukeV9-Mar-04 10:31 
QuestionCan Anyone Help me Plz Pin
MrNiceBerG9-Mar-04 10:16
MrNiceBerG9-Mar-04 10:16 
AnswerRe: Can Anyone Help me Plz Pin
MeterMan9-Mar-04 12:23
MeterMan9-Mar-04 12:23 
QuestionInteractive 2d graph control? Pin
khan20009-Mar-04 9:54
khan20009-Mar-04 9:54 
GeneralMSHTML debug help needed Pin
Arun Bhalla9-Mar-04 9:48
Arun Bhalla9-Mar-04 9:48 
GeneralLayered Service Provider Pin
Member 8826679-Mar-04 8:53
Member 8826679-Mar-04 8:53 
GeneralGetting App Path Pin
Ghasrfakhri9-Mar-04 8:45
Ghasrfakhri9-Mar-04 8:45 
GeneralRe: Getting App Path Pin
Brian D9-Mar-04 9:06
Brian D9-Mar-04 9:06 
GeneralTnx Pin
Ghasrfakhri9-Mar-04 9:09
Ghasrfakhri9-Mar-04 9:09 
GeneralSystem tray menu Pin
sschilachi9-Mar-04 6:58
sschilachi9-Mar-04 6:58 
GeneralRe: System tray menu Pin
David Crow9-Mar-04 7:00
David Crow9-Mar-04 7:00 
GeneralRe: System tray menu Pin
sschilachi9-Mar-04 7:12
sschilachi9-Mar-04 7:12 
GeneralRe: System tray menu Pin
David Crow9-Mar-04 7:19
David Crow9-Mar-04 7:19 
GeneralRe: System tray menu Pin
sschilachi9-Mar-04 7:22
sschilachi9-Mar-04 7:22 
GeneralRe: System tray menu Pin
Iain Clarke, Warrior Programmer9-Mar-04 7:47
Iain Clarke, Warrior Programmer9-Mar-04 7:47 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.