Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.08.14;
Скачать: CL | DM;

Вниз

На Дельфи 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 вся ветка

Текущий архив: 2005.08.14;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.035 c
14-1121856164
Virus.exe
2005-07-20 14:42
2005.08.14
Bluetooth и Дельфя


4-1118750333
Константин_1558
2005-06-14 15:58
2005.08.14
Нужно открыть в проводнике диск CDRom а. Прошу помощи!


6-1115251033
Программович
2005-05-05 03:57
2005.08.14
Поддержка TIdHTTPServer ом cgi приложений


3-1120466958
ААА
2005-07-04 12:49
2005.08.14
Как перейти


1-1122475280
REA
2005-07-27 18:41
2005.08.14
WebBrowser и мистика