+WM_GETTEXT +'no memory violation' +why
7 отговора
195 прегледа
+WM_GETTEXT +'no memory violation' +why
ползвал съм WM_GETTEXT за да взема текста от контрола в друг процес
1 става въпрос за различни процеси всеки със собствена памет
2 на WM_GETTEXT му се подава указател кам буфер в твоя процес
3 е как така другият процес успява да запише каквото и да е в паметта на твоя без да предизвика memory violatoin
явно има някаква шашма която не знам
много ше се изкефя ако някой ме светне
1 става въпрос за различни процеси всеки със собствена памет
2 на WM_GETTEXT му се подава указател кам буфер в твоя процес
3 е как така другият процес успява да запише каквото и да е в паметта на твоя без да предизвика memory violatoin
явно има някаква шашма която не знам
много ше се изкефя ако някой ме светне
Re: +WM_GETTEXT +'no memory violation' +why
Ами той protection-а се регулира от операционната система. Ако кодът се изпълнява в kernel mode, няма проблеми да вижда и да пипа в цялата памет, нали така 
Re: +WM_GETTEXT +'no memory violation' +why
При точно това съобщение се използва memory-mapped file. Когато го пратиш на джам от друг процес онзи прави такъв файл, копира си в него данните, а твоя SendMessage ти попълва буфера от файла.
P.S. Поне това е мнението на Jeffrey Richter
P.S. Поне това е мнението на Jeffrey Richter
Re: +WM_GETTEXT +'no memory violation' +why
Да, логично звучи. Така или иначе не беше достатъчно рационално да се минава в kernel mode при такова съобщение...
Re: +WM_GETTEXT +'no memory violation' +why
Tova li e edinstvenoto takova ili ima i drugi?
Re: +WM_GETTEXT +'no memory violation' +why
а да знаеш някакав link кам мнението на този Jeffrey Richter
или към нещо подобно за SendMessage
или към нещо подобно за SendMessage
Re: +WM_GETTEXT +'no memory violation' +why
Това съм го чел в една книга "Programming Applications for Microsoft Windows " - много добра книга според мен. Покрива win32 рхитектурата ( в частност
windows 2000) - що е процес, синхронизационни обекти, нишки, съобщения. рябва да я има на някой free.*.*
windows 2000) - що е процес, синхронизационни обекти, нишки, съобщения. рябва да я има на някой free.*.*
Re: +WM_GETTEXT +'no memory violation' +why
Ако е на Jeffrey Richter я имам в .chm формат, мога да я кача на някой български сървър.
My blade can cut through armor, and still cut a tomato
My blade can cut through armor, and still cut a tomato