powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Разбираюсь в функциях
7 сообщений из 7, страница 1 из 1
Разбираюсь в функциях
    #39034589
tony_noma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что-то не понимаю как вызывать функции записанные в другом файле. В статьях которые читал написано что достаточно подключить файл с необходимыми функциями и все должно работать, только что-то там упущено или это особенности работы в IDE непонимаю.
=Файл с точкой входа#include "server.cpp"
#include "stdafx.h"
#include <fstream>
#include <string>
#include <windows.h>
using namespace std;


void SetColor(ConsoleColor text, ConsoleColor background)
{
HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hStdOut, (WORD)((background << 4) | text));
}
int _tmain(int argc, _TCHAR* argv[])
{

setlocale(LC_ALL, "Rus");
cfgdb();
MYSQL *conn;
string usr_cmd;
conn = mysql_init(NULL);
bool cmd = TRUE;
while (cmd == TRUE) {
cin >> usr_cmd;
if (usr_cmd == "stop")
{
cmd++;
mysql_close(conn); SetColor(LightGreen, Black);
cout << "Соединение с базой данных закрыто" << endl;
SetColor(LightGray, Black);
cout << "Сервер завершит работу через 10 секунд" << endl;
Sleep(10000);
exit(0);
}
else
{
SetColor(LightRed, Black);
cout << "Неверная команда" << endl;
SetColor(LightGray, Black);
}
}
Sleep(10000);
cout << "exit" << endl;
system("Pause");
return 0;
}



= подключаемый файл#include "stdafx.h"
#include <fstream>

using namespace std;
void cfgdb() {
cout << "Читаем параметры" << endl;
char buff[50];
char simbol = '0';
string host = "host";
string login = "login";
string pass = "pass";
string db_name = "db_name";
int x = 0;
int i;
char word[20]; char word1[20];
char test[100];
ifstream infile("F:/Zoracon/server/ConsoleApplication2/x64/Debug/server.cfg");
if (!infile)
{
cout << "Ошибка открытия файла конфигурации сервера" << endl;
infile.close();
system("pause");
exit(0);
}
else
while (simbol != NULL) {
infile.getline(buff, 100);
simbol = buff[0];
if (simbol == '$') {
for (i = 2; buff[i] != '='; i++)
x = i + 2;
for (i = 1; buff[i] != '#'; i++)
word1[i - 1] = buff[i];
for (i = x; buff[i] != '#'; i++)
{
simbol = buff[i];
word[i - x] = simbol;
}
word[i - x] = '\0'; word1[x - 2] = '\0';
if (word1 == host) host = word; else
if (word1 == login) login = word; else
if (word1 == pass) pass = word; else
if (word1 == db_name) db_name = word; else;
}
else;
}
cout << "Запуск сервера" << endl;
MYSQL *conn;
// Получаем дескриптор соединения
conn = mysql_init(NULL);
if (conn == NULL)
{
// Если дескриптор не получен – выводим сообщение об ошибке
fprintf(stderr, "Error: can'tcreate MySQL-descriptor\n");
//exit(1); //Если используется оконное приложение
}
cout << "Подключаемся к базе данных" << endl;
// Подключаемся к серверу
if (!mysql_real_connect(conn, host.c_str(), login.c_str(), pass.c_str(), db_name.c_str(), NULL, NULL, 0))
{
// Если нет возможности установить соединение с сервером
// базы данных выводим сообщение об ошибке
fprintf(stderr, "Error: can'tconnecttodatabase %s\n", mysql_error(conn));
}
else
{
// Если соединение успешно установлено выводим фразу - "Success!"
cout << "Соединение установлено" << endl;
}
}
enum ConsoleColor
{
Black = 0,
Blue = 1,
Green = 2,
Cyan = 3,
Red = 4,
Magenta = 5,
Brown = 6,
LightGray = 7,
LightBlue = 9,
LightGreen = 10,
LightCyan = 11,
LightRed = 12,
LightMagenta = 13,
Yellow = 14,
White = 15
};


если я просто копирую 2 файл в первый то все работает.
что я упускаю ?
...
Рейтинг: 0 / 0
Разбираюсь в функциях
    #39034593
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tony_nomaчто я упускаю ?
Азы. Начни с чтения букваря на предмет Function Declaration & Implementation.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Разбираюсь в функциях
    #39034594
tony_noma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov, в моем букваре только русские буквы
...
Рейтинг: 0 / 0
Разбираюсь в функциях
    #39034595
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tony_noma, нет желания вчитываться в ваш код. Но общая идея очень простая.

Код: plaintext
1.
2.
3.
4.
// Файл MyFunctions.h

// Объявление функции MyFunc();
int MyFunc();



Код: plaintext
1.
2.
3.
4.
5.
// Файл MyFunctions.cpp
int MyFunc()
{
    return 6;
}



Код: plaintext
1.
2.
3.
4.
5.
6.
7.
// Файл main.cpp.
#include "MyFunctions.h"

void main()
{
    MyFunc();
}
...
Рейтинг: 0 / 0
Разбираюсь в функциях
    #39034596
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tony_nomaв моем букваре только русские буквы
Тогда ищите главу "объявление функций".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Разбираюсь в функциях
    #39034597
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tony_noma,

Упрощая. В файле *.h описаны заголовки (сигнатуры) некоторых функций (объявление функции), которые полностью описаны (определены) где-то в другом файле. Вам нужно просто проследить, что всё в порядке. Файлы *.h подключены там где нужно и т.д.
...
Рейтинг: 0 / 0
Разбираюсь в функциях
    #39034598
tony_noma
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
petrav,

Спасибо, про объявление в заголовочнике ничего не было написано, все работает.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Разбираюсь в функциях
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]