From: Keith M. <kei...@us...> - 2012-02-27 08:05:02
|
On 27/02/12 04:21, Wayne Porter wrote: > // Check for an ending slash and add one if it is missing. > > lpEnd = lpSubKey + lstrlen(lpSubKey); How is the memory referenced by lpSubKey originally declared? Is it guaranteed to point to a writeable data section? Is the buffer at that address guaranteed to have free space at the end, to accommodate the extra '\\' you're trying to append. > if (*(lpEnd - 1) != TEXT('\\')) > { > *lpEnd = TEXT('\\'); // This line crashes the app I'm guessing, (because you haven't provided us with enough diagnostic information -- how does it crash? what is the error message? -- for me to do otherwise), that you are trying to modify data in a read-only section; (hint: char *lpKey = "string constant"; and lpSubKey pointing to a sub-string of lpKey, makes *lpSubKey a read-only reference). > lpEnd++; > *lpEnd = TEXT('\0'); // This one crashes too Likely for the same reason. > } > > > I'm not sure how to start debugging, but I also don't understand why > this is failing. Without seeing the info you failed to provide, I don't either. -- Regards, Keith. |