Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2005.08.14;
Скачать: [xml.tar.bz2];

Вниз

На Дельфи OpenProcess() возвращает другое значение   Найти похожие ветки 

 
AbrosimovA   (2005-06-14 12:22) [0]

На Дельфи:
Function GetMemSharedNT(pid,memSize,hProcess: Cardinal): Pointer;
Begin
hProcess := OpenProcess(PROCESS_VM_OPERATION Or PROCESS_VM_READ Or PROCESS_VM_WRITE, False, pid);
   Result := VirtualAllocEx(hProcess, nil, memSize, MEM_RESERVE Or MEM_COMMIT, PAGE_READWRITE);
End;

На VB:
Public Function GetMemSharedNT(ByVal pid As Long, ByVal memSize As Long, hProcess As Long) As Long
   hProcess = OpenProcess(PROCESS_VM_OPERATION Or PROCESS_VM_READ Or PROCESS_VM_WRITE, False, pid)
   GetMemSharedNT = VirtualAllocEx(ByVal hProcess, ByVal 0&, ByVal memSize, MEM_RESERVE Or MEM_COMMIT, PAGE_READWRITE)
End Function

pid в обоих случаях равен, но hProcess почему-то разный.
Есть у кого-нибудь мысли на этот счёт? Спасибо.


 
Digitman ©   (2005-06-14 12:25) [1]


> hProcess почему-то разный


а почему он д.б. одинаковый ?

хэндл процесса - локально уникален, в то время как Id процесса глобально уникален.


 
-=XP=- ©   (2005-06-14 12:26) [2]

А почему он должен быть одинаковым?


 
AbrosimovA   (2005-06-14 13:16) [3]

Я же запускаю два варианта на одной машине почти одновременно, но Дельфи-вариант выдаёт всё время хэндл = 92.
Мне это нужно для контроля правильности перевода VB-кода на Дельфи.


 
-=XP=- ©   (2005-06-14 13:22) [4]

Дельфи-вариант выдаёт всё время хэндл = 92

Случайность. Не следует на это обращать внимание. Выделение  дескрипторов - прерогатива ОС. В разных процессах они имеют совершенно разный смысл. Лично Вам что-то число 92 говорит? :)


 
Digitman ©   (2005-06-14 13:23) [5]


> Дельфи-вариант выдаёт всё время хэндл = 92


ну и пусть себе выдает !
хоть 92 , хоть 65876546354635 ..

лишь бы не 0 !

ибо 0 означает отказ ф-ции по тем или иным причинам, которые всегда можно уточнить, тут же вызвав GetLastError


> нужно для контроля правильности перевода VB-кода на Дельфи


странный "способ" - опираться на домыслы, а не на документацию


 
AbrosimovA   (2005-06-15 08:14) [6]

Не совсем понятно про какие домыслы идёт речь. Ведь переводом из VB в Паскаль занимаюсь я и здесь же сам себя и проверяю.
У меня есть пример на VB, который выдаёт список всего, что находится в трее, а я пытаюсь этот пример перевести на Паскаль.


 
Digitman ©   (2005-06-15 08:32) [7]


> Не совсем понятно про какие домыслы идёт речь


домыслом дан.случае является ожидание тобой одинаковых значений хэндла одного и того же процесса


> Ведь переводом из VB в Паскаль занимаюсь я и здесь же сам
> себя и проверяю


переводить-то тоже с умом нужно !

в VB-коде присутствует некорректность, и ты ее тащишь один-в-один в свой код

некорректность заключается в отсутствии проверки значений, возвращаемых WinAPI-ф-циями, на предмет успешного или неуспешного выполнения


 
Virgo_Style ©   (2005-06-15 08:33) [8]

AbrosimovA   (15.06.05 8:14) [6]

Все уже сказано в [1]


 
AbrosimovA   (2005-06-15 08:39) [9]

Digitman ©   (15.06.05 08:32) [7]
>в VB-коде присутствует некорректность

Тем не менее VB-код работает, а мой - нет.


 
Digitman ©   (2005-06-15 08:56) [10]


> AbrosimovA   (15.06.05 08:39) [9]


а отладчик на что ?


 
AbrosimovA   (2005-06-15 10:21) [11]

Ладно. Всем спасибо.



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2005.08.14;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.01 c
3-1120549321
DeStranger
2005-07-05 11:42
2005.08.14
Кодировка при экспорте дампа в Oracle


3-1120471682
Apachi
2005-07-04 14:08
2005.08.14
Как собрать строку в T-SQL


14-1122021392
крот
2005-07-22 12:36
2005.08.14
Кто сидит на кухне?


14-1121638929
Andy BitOff
2005-07-18 02:22
2005.08.14
Удивительная клавиатура от Артемия Лебедева. Офигеть!


1-1122222124
Galiaf
2005-07-24 20:22
2005.08.14
Обновление приложения.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский