Posted
almost 6 years
ago
by
Scott Cantor
Martin, you keep believing incorrectly that LPDWORD is a pointer to a 64-bit data item. It is not pointing to 64 bits of data, that's a pointer to 32 bits of data.
unsigned int = 4
DWORD = 4
unsigned long = 4
See? All those are 4 bytes by your own Read more
|
Posted
almost 6 years
ago
by
Alberto Massari
That code is correct too:
362 unsigned long theSize;
...
405 unsigned long theType;
406 unsigned int CPId;
407 unsigned int IEId;
408
409 theSize = sizeof(unsigned int);
410
Read more
|
Posted
almost 6 years
ago
by
martin goodall
sure my comment was wrong - I just noticed should have said "(64 bits bytes not 32)". But the code is wrong and u keep defending it. I gave an example and ask you to comment where we disagree so lets go back to it:-
unsigned int var = 0; // this is Read more
|
Posted
almost 6 years
ago
by
Scott Cantor
The problem is not in the variable you added that comment about in the patch.
I believe the bug is in that second set of parameters at the end where it passes in the wrong value for the size of the "theSize" variable that was set to 4 bytes in the Read more
|
Posted
almost 6 years
ago
by
Scott Cantor
Just to be accurate though, there are a number of Reg API calls in there, and some of them absolutely do pass in unsigned int variables as DWORD inputs. That happens to be correct since Windows is LLP64 and sizeof(int) == sizeof(long), but also is Read more
|
Posted
almost 6 years
ago
by
martin goodall
your looking at the wrong part of code
if (!isAlias(encodingKey))
{
//
// Lets get the two values out of this key that we are
// interested in. There should be a code page entry and an
// IE entry.
//
// The Codepage entry is the default Read more
|
Posted
almost 6 years
ago
by
Scott Cantor
access violation in win32transservice.cpp with 64 bit compile
|
Posted
almost 6 years
ago
by
martin goodall
its the default code path on windows and always gets called. If Unicode is used, the default has to be overridden and it wouldn't happen. The issue would not exist if compiled as 32 bit, only 64 bit. It took 5 days to track down the issue as the Read more
|
Posted
almost 6 years
ago
by
Scott Cantor
access violation in win32transservice.cpp with 64 bit compile
|
Posted
almost 6 years
ago
by
Scott Cantor
Is there an alternative code path on Windows that one might be using by default? I'm curious because I haven't had reports that line up with this, so wondering if use of the Win32 TransService is itself not universal. I would think it would be Read more
|