Pomógł by ktoś z rozwiązaniem błędów?

0
#include "core/trace.hpp"
#include "core/network.hpp"

int main()
{
	int choice;

	while (true)
	{
		system("cls");

		std::cout << R"(
                                            
                                                            
                 *//                                          
             .*/****/.       ,***************                 
        *****************************************             
      ******(***************************************          
   .********%#***************************************         
   **************************************************.        
        ////**********************//******************        
                ////*************////*****************        
                   ////*******///////****************         
                       //*****///////*********************    
                          ***.          *********     ******* 
                        *****        ********             ****
                                                          ****
                                                      ,*****  
                             .*************************       

	)" << '\n';

		g_network = std::make_unique<network>();
		g_trace = std::make_unique<trace>();

		while (true)
		{
			g_trace->m_fivem_path = g_trace->set_folder("Select FiveM Folder which contains FiveM.exe");

			system("cls");

			if (!g_trace->m_fivem_path.empty())
			{
				std::cout << "  [Selected Folder]  " << g_trace->m_fivem_path << std::endl;
				std::cout << "  [Launch Build]  " << g_trace->get_launch_build() << "\n" << std::endl;
	
				std::cout << "  [1]  :  " << "clean traces" << std::endl;
				std::cout << "  [2]  :  " << "enable network bypass" << std::endl;
				std::cout << "  [3]  :  " << "disable network bypass" << std::endl;
				std::cout << "  [4]  :  " << "reset fivem path" << std::endl;
				std::cout << "  [5]  :  " << "edit launch options" << std::endl;
				std::cin >> choice;

				switch (choice)
				{
					case 1:
					{
						g_trace->setup();
					}
					break;
					case 2:
					{
						g_network->setup();
					}
					break;
					case 3:
					{
						g_network->destroy();
					}
					break;
					case 4:
					{
						g_trace->destroy();
					}
					break;
					case 5:
					{
						g_trace->set_launch_build();
					}
					break;
				}
			}
			else
			{
				std::cout << "  [Error]  :  " << "select valid folder for FiveM" << "\n" << std::endl;
			}

			system("Pause");
		}

		system("Pause");
	}

}

screenshot-20220406172639.png

3
auto g_trace = std::make_unique<trace>();

Ale nie do końca, bo nie podałeś całego kodu, więc nie wiadomo co się kryje w tych include.
Używanie zmiennych globalnych jest jednym z najpoważniejszych błędów w projekcie aplikacji.
Podaj Minimalny Kompletny Reprodukowany Przykład.

1

Innymi słowy, albo próbujesz operować na czymś, co (jeszcze?) nie istnieje (zmiennej g_trace), albo zadeklarować zmienną bez podawania typu.

W C(++) nowe zmienne tworzy się, m.in., typ nazwa_zmiennej = wartość;; a samo nazwa_zmiennej = wartość; to próba przypisania wartości do zmiennej, która w tym momencie musi już istnieć.

Jak MarekR22 wyżej napisał, nie bardzo wiadomo, o którą opcję Ci chodziło.

0

MAIN
#include "trace.hpp"

void trace::setup()
{
// Locate Appdata
std::string appdata = getenv("LOCALAPPDATA");
std::string localappdata = getenv("APPDATA");

// Locate DigitalElements
appdata = appdata + "\\" + "DigitalEntitlements";
if(std::filesystem::remove_all(appdata))
{
	std::cout << "Removed: " << appdata << std::endl;
}
else
{
	std::cout << "Couldn't Find: " << appdata << std::endl;
}

// Locate CitizenFX
appdata = localappdata + "\\" + "CitizenFX";
if (std::filesystem::remove_all(appdata))
{
	std::cout << "Removed: " << appdata << std::endl;
}
else
{
	std::cout << "Couldn't Find: " << appdata << std::endl;
}

}

INT CALLBACK browse_callback_proc(HWND hwnd, UINT uMsg, LPARAM lp, LPARAM pData)
{
if (uMsg == BFFM_INITIALIZED) SendMessage(hwnd, BFFM_SETSELECTION, TRUE, pData);
return 0;
}

void trace::destroy()
{
m_fivem_path.clear();
std::remove(m_save_path.c_str());
}

std::string trace::set_folder(std::string title)
{
std::ifstream path(m_save_path);
if (!path.good())
{
std::string appdata = getenv("LOCALAPPDATA");
auto fivem_path = appdata + "\" + "FiveM";

	BROWSEINFO br;
	ZeroMemory(&br, sizeof(BROWSEINFO));
	br.lpfn = browse_callback_proc;
	br.ulFlags = BIF_RETURNONLYFSDIRS | BIF_NEWDIALOGSTYLE;
	br.hwndOwner = NULL;
	br.lpszTitle = title.c_str();
	br.lParam = (LPARAM)fivem_path.c_str();

	std::string ret;

	LPITEMIDLIST pidl = NULL;
	if ((pidl = SHBrowseForFolder(&br)) != NULL)
	{
		char buffer[_MAX_PATH];
		if (SHGetPathFromIDList(pidl, buffer)) ret = buffer;
	}

	if (!std::filesystem::exists(ret + "\\" + "FiveM.exe"))
	{
		return std::string();
	}

	if (!ret.empty())
	{
		std::ofstream save_path(m_save_path);
		save_path << ret << std::endl;
		save_path.close();
	}

	return ret;
}
else
{
	std::string name;
	path >> name;
	return name;
}

}

void trace::set_launch_build()
{
int choice;

std::vector<const char*> m_builds = { "2545", "2372", "2189", "2060", "1604" };

for (int i = 0; i < m_builds.size(); i++)
{
	std::cout << "  [" << i + 1 << "]  :  " << m_builds[i] << std::endl;
}
std::cin >> choice;

auto path = std::string(m_fivem_path + m_citizen_ini_path).c_str();

if (std::filesystem::exists(path))
{
	WritePrivateProfileString("Game", "SavedBuildNumber", m_builds[choice - 1], path);
}

}

std::string trace::get_launch_build()
{
auto path = std::string(m_fivem_path + m_citizen_ini_path).c_str();
auto buildNumber = 0;

if (std::filesystem::exists(path))
{
	buildNumber = GetPrivateProfileInt("Game", "SavedBuildNumber", buildNumber, path);
}
return std::to_string(buildNumber);

}

NETWORK
#include "network.hpp"
#include "trace.hpp"
#include <vector>

void network::block_connection(std::string process)
{
std::string outbound = "netsh advfirewall firewall add rule name = " + process + " dir = out program = " + process + " action = block";
system(outbound.c_str());

std::string inbound = "netsh advfirewall firewall add rule name = " + process + " dir = in program = " + process + "  action = block";
system(inbound.c_str());

}

void network::unblock_connection(std::string process)
{
std::string outbound = "netsh advfirewall firewall delete rule name = " + process + " dir = out program = " + process;
system(outbound.c_str());

std::string inbound = "netsh advfirewall firewall delete rule name = " + process + " dir = in program = " + process;
system(inbound.c_str());

}

void network::setup()
{
// Locate FiveM.exe
auto fivem_path = g_trace->m_fivem_path + "\FiveM.exe";
block_connection(fivem_path);

// Locate FiveM Subprocesses path
auto subprocess_path = g_trace->m_fivem_path + "\\FiveM.app\\data\\cache\\subprocess";

std::vector<std::string> gta_versions{ "b2545_", "b2372_", "b2189_", "b2060_",  "" };

for (auto &processes : gta_versions)
{
	// Block the gta processes
	auto gta_process = subprocess_path + "\\FiveM_" + processes + "GTAProcess.exe";
	block_connection(gta_process);

	// Block the steam processes
	auto steam_process = subprocess_path + "\\FiveM_" + processes + "SteamChild.exe";
	block_connection(steam_process);
}

}

void network::destroy()
{
// Locate FiveM.exe
auto fivem_path = g_trace->m_fivem_path + "\" + "FiveM.exe";
unblock_connection(fivem_path);

// Locate FiveM Subprocesses path
auto subprocess_path = g_trace->m_fivem_path + "\\FiveM.app\\data\\cache\\subprocess";

std::vector<std::string> gta_versions{ "b2545_", "b2372_", "b2189_", "b2060_",  "" };

for (auto &processes : gta_versions)
{
	// Block the gta processes
	auto gta_process = subprocess_path + "\\FiveM_" + processes + "GTAProcess.exe";
	unblock_connection(gta_process);

	// Block the steam processes
	auto steam_process = subprocess_path + "\\FiveM_" + processes + "SteamChild.exe";
	unblock_connection(steam_process);
}

}
COMMON

#pragma once

#include <Windows.h>
#include <string>
#include <iostream>

#include <filesystem>

#include <functional>
#include <string>
#include <vector>
#include <cctype>

#include <shlobj_core.h>
#include <fstream>
#include <format>

#include <netfw.h>

TRACE

#pragma once
#include "common.hpp"
#include <string>

class trace
{
public:
void setup();
void destroy();
void set_launch_build();
std::string get_launch_build();

std::string set_folder(std::string title);

public:
std::string m_save_path{ "save.txt" };
std::string m_fivem_path;
std::string m_citizen_ini_path{ "\FiveM.app\CitizenFX.ini" };
};

inline std::unique_ptr;<trace> g_trace{} ;

NETWORK

#pragma once
#include "common.hpp"

class network
{
public:
void setup();
void destroy();
private:
void block_connection(std::string process);
void unblock_connection(std::string process);
};

inline std::unique_ptr<network> g_network;

a u góry jest main

a tu są wszystkie błędy jakie występują screenshot-20220406174226.png

3

Po jaką jasną Anielcię kopiowac kod, który przerasta kopistę o rząd wielkości?

Co nie znaczy, że bezczelne kopiowanie hello world jest moralnie lepsze, ale przynajmniej dojdzie do jakiegoś wyniku

0

@ZrobieDobrze: jest to pasta z githuba którą chiałbym naprawić ale napotykam dużą ilość problemów

5

@Jarlaa:

"ale napotykam dużą ilość problemów" ... jakby ci to delikatnie powiedzieć ... moze jeszcze nie przyszedł na to czas ?
Zrobić własnoręcznie znaczniejsze programy w jednym module, potem w kilku plikach źródłowych, coraz trudniejsze.
Poobijasz się z typowymi problemami, zaczniesz łączyć w głowie "co jest co" - na obecnym etapie nie masz ŻADNCYH skojarzeń, żadnych intuicji.

Do brania kodu z netu - może cię zdziwię - trzeba o wiele większych kwalifikacji, niż do napisania własnego.

1 użytkowników online, w tym zalogowanych: 0, gości: 1