[w0te]
Потрачен
- 771
- 492
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
ладноНу хотябы озы c++ поучи
ладноНу хотябы озы c++ поучи
У тебя явно написано где ошибка, чего не хватает, и почему не компилируетсяПри компиляции вот такого кода ( SFPlugin )
cod:#include <Windows.h> #include "main.h" SAMPFUNCS *SF = new SAMPFUNCS(); void __stdcall mainloop() void CALLBACK cmd_show_info_player(std::string param); { if (param.empty()) return; int i = std::stoi(param); char buf[128]; stRemotePlayer *pPlayer = SF->getSAMP()->getPlayers()->pRemotePlayer[i]; if (!pPlayer) return; sprintf(buf, "Nickname - %s, Ping - %d, Score - %d, isNPC - %d, AFKState - %d", pPlayer->szPlayerName, pPlayer->iPing, pPlayer->iScore, pPlayer->iIsNPC, pPlayer->pPlayerData->iAFKState == 2); SF->getSAMP()->getChat()->AddChatMessage(-1, buf); }; { static bool initialized = false; if (!initialized) { if (GAME && GAME->GetSystemState() == eSystemState::GS_PLAYING_GAME && SF->getSAMP()->IsInitialized()) { initialized = true; SF->getSAMP()->getChat()->AddChatMessage(D3DCOLOR_XRGB(0, 0xAA, 0), "SAMPFUNCS Plugin loaded."); SF->getSAMP()->registerChatCommand("showinfo", cmd_show_info_player); } } } BOOL APIENTRY DllMain(HMODULE hModule, DWORD dwReasonForCall, LPVOID lpReserved) { if (dwReasonForCall == DLL_PROCESS_ATTACH) SF->initPlugin(mainloop, hModule); return TRUE; }
Выдаёт такую ошибку:
1>------ Сборка начата: проект: SFPlugin, Конфигурация: Release Win32 ------
1> main.cpp
1>main.cpp(9): error C2144: синтаксическая ошибка: перед "void" требуется ";"
1>main.cpp(10): error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа)
1>main.cpp(31): error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа)
========== Сборка: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
std::ifstream file(license_txt);
if (file.is_open())
{
std::string lines;
while (std::getline(file, lines)) // Перебирает строки и потом сравнивает с hdd_now
{
if (lines == hdd_now) {
SF->Log("Путь к файлу: %s\nHDD: %s\nТекст: %s", license_txt, hdd_now, lines);
msg("Подписки куплена, приятного использования");
}
else
{
SF->Log("Путь к файлу: %s\nHDD: %s\nТекст: %s", license_txt, hdd_now, lines);
msg("Подписки нету, её нужно купить");
}
}
file.close();
}
Для std::string следует использовать метод .c_str()Выводит какой-то бред, замахался с этим уже, помогите пожалуйста.
C++:std::ifstream file(license_txt); if (file.is_open()) { std::string lines; while (std::getline(file, lines)) // Перебирает строки и потом сравнивает с hdd_now { if (lines == hdd_now) { SF->Log("Путь к файлу: %s\nHDD: %s\nТекст: %s", license_txt, hdd_now, lines); msg("Подписки куплена, приятного использования"); } else { SF->Log("Путь к файлу: %s\nHDD: %s\nТекст: %s", license_txt, hdd_now, lines); msg("Подписки нету, её нужно купить"); } } file.close(); }
Скрин:
Посмотреть вложение 119843
lines.c_str()
Краш игры, иДля std::string следует использовать метод .c_str()
Для выводы HDD скорее тебе требуется: "%X"C++:lines.c_str()
После проверки, 7 строка.когда в лог выводишь....
std::ifstream file(license_txt);
if (file.is_open())
{
std::string lines;
while (std::getline(file, lines)) // Перебирает строки и потом сравнивает с hdd_now
{
if (lines == hdd_now) {
SF->Log("Путь к файлу: %s\nHDD: %s\nТекст: %s", license_txt, hdd_now, lines);
msg("Подписки куплена, приятного использования");
}
else
{
SF->Log("Путь к файлу: %s\nHDD: %s\nТекст: %s", license_txt, hdd_now, lines);
msg("Подписки нету, её нужно купить");
}
}
file.close();
}
После проверки, 7 строка.
C++:std::ifstream file(license_txt); if (file.is_open()) { std::string lines; while (std::getline(file, lines)) // Перебирает строки и потом сравнивает с hdd_now { if (lines == hdd_now) { SF->Log("Путь к файлу: %s\nHDD: %s\nТекст: %s", license_txt, hdd_now, lines); msg("Подписки куплена, приятного использования"); } else { SF->Log("Путь к файлу: %s\nHDD: %s\nТекст: %s", license_txt, hdd_now, lines); msg("Подписки нету, её нужно купить"); } } file.close(); }
std::ifstream file(license_txt);
if (file.is_open())
{
std::string lines;
while (std::getline(file, lines)) // Перебирает строки и потом сравнивает с hdd_now
{
if (lines == hdd_now) {
SF->Log("Путь к файлу: %s\nHDD: %s\nТекст: %s", license_txt.c_str(), hdd_now.c_str(), lines.c_str());
msg("Подписки куплена, приятного использования");
}
else
{
SF->Log("Путь к файлу: %s\nHDD: %s\nТекст: %s", license_txt.c_str(), hdd_now.c_str(), lines.c_str());
msg("Подписки нету, её нужно купить");
}
}
file.close();
}
size_t write_data_file(void* ptr, size_t size, size_t nmemb, FILE* stream) {
size_t written = fwrite(ptr, size, nmemb, stream);
return written;
} // Доп. функция, строка 14
void download_file()
{
std::string file_txt = game_directory() + "\\SAMPFUNCS\\lic.txt";
CURL* curl = curl_easy_init();
if (curl) {
FILE* fp = fopen(file_txt.c_str(), "wb");
curl_easy_setopt(curl, CURLOPT_URL, "url");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data_file);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp);
CURLcode res = curl_easy_perform(curl);
SF->Log(curl_easy_strerror(res)); // Вывод лога
curl_easy_cleanup(curl);
fclose(fp);
}
компиль курл статическиПри добавлении этой функции в исполнение, плагин SF не загружается вообще.
C++:size_t write_data_file(void* ptr, size_t size, size_t nmemb, FILE* stream) { size_t written = fwrite(ptr, size, nmemb, stream); return written; } // Доп. функция, строка 14 void download_file() { std::string file_txt = game_directory() + "\\SAMPFUNCS\\lic.txt"; CURL* curl = curl_easy_init(); if (curl) { FILE* fp = fopen(file_txt.c_str(), "wb"); curl_easy_setopt(curl, CURLOPT_URL, "url"); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data_file); curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp); CURLcode res = curl_easy_perform(curl); SF->Log(curl_easy_strerror(res)); // Вывод лога curl_easy_cleanup(curl); fclose(fp); }
Если я думаю правильно где-то была строка со слово Static, после инициализации библиотеки, её нежно добавить или как правильно?компиль курл статически
CURL_STATICLIB в параметры препроцессора простоЕсли я думаю правильно где-то была строка со слово Static, после инициализации библиотеки, её нежно добавить или как правильно?
URLDownloadToFilе не варик?И это ради того чтобы скачать txt файл по прямой ссылке, еслиб lua можно было скрыть код - цены не было у него с его нынешней реализацией moonloader
Нихера не работает друг, я уже как только не пробовал, failed и всеURLDownloadToFilе не варик?
Попробуй скачать через эту функцию, нифига блинаURLDownloadToFilе не варик?