![]() |
Короче решил написать свой самп клиент:
C++: Код:
BOOLВсе должно работать, но я хз почему не работает, помогите пж |
Решил?
|
Цитата:
Что никто не писал самп клиент свой? Что вообще ни так я смотрел оригинал сурсы сампа, там по сути просто создается процесс gta_sa.exe с агрументами и потом инжектится samp.dll Помогите пожалуйста кто нибудь, уже 2 день решить не могу |
Ты конечно молодец. Копировать научился, а всё остальное по твоему должно и так работать.
CreateProcessA создает процесс по указанному пути и с указанными аргументами, но большинство процессов, тем более игра (если ты не знал) тянут под себя еще кучу зависимостей. Мультиплеер в том числе. Откуда им нахер знать откуда тянуть ресурсы? Ты создал манекен процесса и отрубил ему пути до зависимостей. Если ты поместишь свой инжектор в папку с gta_sa.exe, то заметишь, что все работет. Ибо функция CreateProcessA будет всю работу делать за тебя и по умолчанию поставит дефолтный каталог на диск и каталог в котором находится модуль её исполняемый (в твоем случае инжектор). Но она также предусматривает возможность изменения этого каталога. Так вот если ты запускаешь свой инжектор не из директории где лежит gta_sa.exe, то тебе нужно изменить тот самый параметр CurrentDirectory (текущая директория), чтобы samp и gta_sa смогли тянуть зависимости. По итогу получаешь: C++: Код:
CreateProcessAРебята из мелкомягких документацию для таких как ты и пишут. Научитесь уже ей пользоваться. msdn называется. |
| Время: 20:24 |