ANTICHAT Forum
HOME FORUMS MEMBERS RECENT POSTS LOG IN  
НОВЫЕ ТОРГОВАЯ НОВОСТИ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > Общие вопросы программирования
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #4  
Старый 07.08.2021, 08:52
.deserve
Познающий
Регистрация: 06.09.2018
Сообщений: 32
С нами: 4045092

Репутация: 23
По умолчанию

Ты конечно молодец. Копировать научился, а всё остальное по твоему должно и так работать.

CreateProcessA создает процесс по указанному пути и с указанными аргументами, но большинство процессов, тем более игра (если ты не знал) тянут под себя еще кучу зависимостей. Мультиплеер в том числе. Откуда им нахер знать откуда тянуть ресурсы?

Ты создал манекен процесса и отрубил ему пути до зависимостей.

Если ты поместишь свой инжектор в папку с gta_sa.exe, то заметишь, что все работет. Ибо функция CreateProcessA будет всю работу делать за тебя и по умолчанию поставит дефолтный каталог на диск и каталог в котором находится модуль её исполняемый (в твоем случае инжектор).

Но она также предусматривает возможность изменения этого каталога. Так вот если ты запускаешь свой инжектор не из директории где лежит gta_sa.exe, то тебе нужно изменить тот самый параметр CurrentDirectory (текущая директория), чтобы samp и gta_sa смогли тянуть зависимости.

По итогу получаешь:

C++:





Код:
CreateProcessA
(
"D:\\Games\\GTA SAMP\\gta_sa.exe"
,
"-c -n NickName -h 228.227.226.225 -p 7777"
,
NULL
,
NULL
,
FALSE
,
DETACHED_PROCESS
|
CREATE_SUSPENDED
,
NULL
,
"D:\\Games\\GTA SAMP\\"
,
&
cif
,
&
pi
)
)
;


Ребята из мелкомягких документацию для таких как ты и пишут. Научитесь уже ей пользоваться. msdn называется.
 
Ответить с цитированием
 



Предыдущая тема Следующая тема

Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.