purebasic.info

PureBasic forum
Текущее время: Вс ноя 19, 2017 3:23 pm

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 47 ]  На страницу Пред.  1, 2, 3, 4  След.
Автор Сообщение
СообщениеДобавлено: Сб окт 28, 2017 6:04 am 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6189
Благодарил (а): 16 раз.
Поблагодарили: 169 раз.
Пункты репутации: 48
Пётр писал(а):
А при запуске в диспетчере задач определяется как x64 процесс.

Нет, как *32
Изображение

Покажи свой, может у тебя W7 какая другая?

_________________
read-only


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Сб окт 28, 2017 10:03 am 
Не в сети
док

Зарегистрирован: Чт ноя 22, 2007 8:03 pm
Сообщений: 163
Откуда: Питер
Благодарил (а): 3 раз.
Поблагодарили: 1 раз.
Пункты репутации: 0
kvitaliy писал(а):
Пётр писал(а):
kvitaliy писал(а):
про систему разговора не было.
Дело не в системе. Калькулятор 64-ти битный, т. е. x64 программа, верно?

Не верно.

Т.к. ExeinfoPE сама 32-х разрядная, для неё срабатывает перенаправление в SysWOW64


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Сб окт 28, 2017 10:15 am 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6189
Благодарил (а): 16 раз.
Поблагодарили: 169 раз.
Пункты репутации: 48
Smitis писал(а):
Т.к. ExeinfoPE сама 32-х разрядная, для неё срабатывает перенаправление в SysWOW64

это причем? Скрин с диспетчера задач хорошо видно? Там черным по белому написано, что калькулятор 32 разрядный, если кому интересно, Паинт тоже *32 и Блокнот.
Вот я и думаю, может мне подсунули в win 7 x64 такие программы, а у всех вас, включая Петра нормальные? :)
Ну скинте мне сюда в архиве хоть Калькулятор, я протестирую.

_________________
read-only


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Сб окт 28, 2017 11:33 am 
Не в сети
док

Зарегистрирован: Пн сен 27, 2010 10:30 am
Сообщений: 143
Откуда: Уренгой
Благодарил (а): 0 раз.
Поблагодарили: 10 раз.
Пункты репутации: 5
Специально для kvitaliy :)


Вложения:
Комментарий к файлу: Калькулятор, Блокнот 64х
64.rar [459.83 KiB]
Скачиваний: 12
Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Сб окт 28, 2017 6:11 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6189
Благодарил (а): 16 раз.
Поблагодарили: 169 раз.
Пункты репутации: 48
КЭС писал(а):
Специально для kvitaliy :)

Вот спасибо. Действительно, эти программы реально x64
Странно, почему же у меня другие?
Но в общем то суть в том, что приведённый код в не зависимости от разрядности запускаемой программы из памяти процесса всё равно не работает с х64 Виндой.
А это на современном этапе прискорбно, ибо x64 системы становятся наиболее актуальны.

_________________
read-only


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Сб окт 28, 2017 6:31 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11054
Благодарил (а): 4 раз.
Поблагодарили: 379 раз.
kvitaliy писал(а):
приведённый код в не зависимости от разрядности запускаемой программы из памяти процесса всё равно не работает с х64 Виндой.
В x64 системе работает когда основная и запускаемая из памяти программы 32-ух битные. Об этом уже несколько раз в теме писали.

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Сб окт 28, 2017 8:41 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6189
Благодарил (а): 16 раз.
Поблагодарили: 169 раз.
Пункты репутации: 48
Пётр писал(а):
kvitaliy писал(а):
приведённый код в не зависимости от разрядности запускаемой программы из памяти процесса всё равно не работает с х64 Виндой.
В x64 системе работает когда основная и запускаемая из памяти программы 32-ух битные. Об этом уже несколько раз в теме писали.

Начинаем сначала разговор? Почему у меня не работает?
Приложение компилирую в пурике x86, калькулятор у меня X86, в результате это:
Изображение

_________________
read-only


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Сб окт 28, 2017 9:35 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11054
Благодарил (а): 4 раз.
Поблагодарили: 379 раз.
kvitaliy писал(а):
калькулятор у меня X86
Выложите сюда калькулятор.

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Сб окт 28, 2017 9:50 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6189
Благодарил (а): 16 раз.
Поблагодарили: 169 раз.
Пункты репутации: 48
Сомневаешься что ли? :D


Вложения:
calc.zip [330.76 KiB]
Скачиваний: 12

_________________
read-only
Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Сб окт 28, 2017 10:35 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11054
Благодарил (а): 4 раз.
Поблагодарили: 379 раз.
kvitaliy писал(а):
Сомневаешься что ли?
Нет, выясняю причину и она кажется ясна.
Помести его куда-нибудь (например в корень диска C:) и запусти. Не запускается.

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вс окт 29, 2017 5:05 am 
Не в сети
док
Аватар пользователя

Зарегистрирован: Сб мар 28, 2015 11:06 pm
Сообщений: 112
Откуда: Україна
Благодарил (а): 7 раз.
Поблагодарили: 6 раз.
Пункты репутации: 4
Не, полагаю из за длинных зависимостей калькулятора:
Изображение
если рядом не найдутся x86 dll то будут браться из винды, а там они уже PE32+ : 64-bit ready


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вс окт 29, 2017 6:11 am 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6189
Благодарил (а): 16 раз.
Поблагодарили: 169 раз.
Пункты репутации: 48
Пётр писал(а):
выясняю причину и она кажется ясна.
Помести его куда-нибудь (например в корень диска C:) и запусти. Не запускается.

Ну вот смотри, запущен калькулятор из корня диска С и Процесс эксплоер(кстати видно, что именно копия для x64 - procexp64), который показывает его путь:
Изображение
Прекрасно работает.
LinXP, любой файл в винде имеет зависимости на системные библиотеки. Это и так ясно без серьёзных исследований.
И искать он их будет в такой пос-ти:
-Каталог, в котором находится исполняемый модуль текущего процесса.
-Текущий каталог.
-Системный каталог Windows.
-Каталог Windows.
-Каталоги, указанные в переменной среды PATH.
Обычно калькулятор лежит в системном каталоге, у меня именно так. Значит и все нужные либы где то там.
Так что куда его не положи, он их должен найти. По крайней мере при нормальном запуске.

Просто я ещё раз хочу озвучить вывод по запуску программ из памяти - метод не надежный и для широкого применения я бы не рекомендовал. Наверно можно использовать для себя в отдельно взятой машине для какой то конкретной программы, если это заработало.

_________________
read-only


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Чт ноя 02, 2017 12:11 pm 
Не в сети
студент

Зарегистрирован: Чт ноя 03, 2016 2:28 pm
Сообщений: 5
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
А Вы не сталкивались, что например калькулятор может называться по разному в различных виндах, короче просто не правильный путь


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Чт ноя 02, 2017 4:21 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6189
Благодарил (а): 16 раз.
Поблагодарили: 169 раз.
Пункты репутации: 48
Sosed писал(а):
короче просто не правильный путь

С неправильным путём этот код невозможно скомпилировать:
Код:
1
IncludeBinary "C:\WINDOWS\system32\calc.exe" 


Тут сразу вылезет ошибка, что файл не найден.

_________________
read-only


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Пт ноя 03, 2017 6:02 pm 
Не в сети
док

Зарегистрирован: Чт ноя 22, 2007 8:03 pm
Сообщений: 163
Откуда: Питер
Благодарил (а): 3 раз.
Поблагодарили: 1 раз.
Пункты репутации: 0
kvitaliy писал(а):
это причем?

При том! https://en.wikipedia.org/wiki/WoW64
Если Вы используете 32-х разрядную программу пытающуюся получить доступ к данным из system32 или program files (запустить, прочитать, сделать текущей папку и т.д.) система перенаправит Вас в папки SysWOW64 и Program Files (x86) соответственно. При этом сама программа будет работать так, как будто это настоящие system32 и program files, но файлы будут 32-х разрядные.
Вот пример кода, которым это можно отключить
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Prototype IsWow64Process(hProcess,*Wow64Process)
Prototype Wow64DisableWow64FsRedirection(*OldValue)
Global kernel = OpenLibrary(#PB_Any,"Kernel32.dll")
Global IsWow64Process_.IsWow64Process = GetFunction(kernel,"IsWow64Process")
Global Wow64DisableWow64FsRedirection_.Wow64DisableWow64FsRedirection = GetFunction(kernel,"Wow64DisableWow64FsRedirection")
Procedure DisableWow64()
        Protected IsWow64ProcessFlag, Wow64OldValue
        If IsWow64Process_ And Wow64DisableWow64FsRedirection_
                IsWow64Process_(GetCurrentProcess_(),@IsWow64ProcessFlag)
                If IsWow64ProcessFlag <> 0
                        Wow64DisableWow64FsRedirection_(@Wow64OldValue)
                EndIf
        EndIf
EndProcedure
DisableWow64()



Последний раз редактировалось Smitis Пт ноя 03, 2017 6:58 pm, всего редактировалось 1 раз.

Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 47 ]  На страницу Пред.  1, 2, 3, 4  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB