ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

28.03.2009, 15:31
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
Если ты запускаешь проект под какой-то средой, то не факт, что текущая директория устанавливается на ту же директорию где лежит exe файл. Попробуй положи libmysql.dll в папку с exe и запусти с оболочки. Если не поможет кинь в Windows или Windows\System32.
|
|
|

28.03.2009, 15:53
|
|
Участник форума
Регистрация: 09.08.2008
Сообщений: 139
Провел на форуме: 560332
Репутация:
15
|
|
я просто запускаю .ехе. Без среды и т.д. . Библиотека лежит и в windows\.. и в одной папке с .ехе
|
|
|

28.03.2009, 16:06
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
Glazz, значит либо у тебя лежит кривая либа, либо она почему-то требует каких-то зависимостей (я такого не встречал), либо эта клиентская библиотека не той версии... Где ты её брал? В дистрибутиве mysql?
|
|
|

28.03.2009, 16:49
|
|
Участник форума
Регистрация: 09.08.2008
Сообщений: 139
Провел на форуме: 560332
Репутация:
15
|
|
Да. Меня настораживает то, что он неправильно пишет адрес до библиотеки. Я подключал адрессом до библиотеки, он пишет там адресс до файла без слэша, если пишу -lmysql , он пишет, что не может покдлючить её. linker input file unused because linking not done
Если при компиляции ложить библиотеку в другую папку, то он пишет - не могу найти -libmysql.dll . Почему сначала минус идет. О если библиотеку называю "-libmysql.dll" то он её находит.
Последний раз редактировалось Glazz; 28.03.2009 в 16:51..
|
|
|

29.03.2009, 15:46
|
|
Познающий
Регистрация: 25.04.2008
Сообщений: 51
Провел на форуме: 146826
Репутация:
17
|
|
Здраствуйте.
Я новичек в С++, помогите плиз:
Как рисовать в C++ (Windows XP, Visual Studio 2008 Express)?
Нашел пример
Код:
#using <system.drawing.dll>
using namespace System;
using namespace System::Drawing;
// ...
protected:
Void Form1::OnPaint(PaintEventArgs^ pe )
{
Graphics^ g = pe->Graphics;
g->Clear(Color::AntiqueWhite);
Rectangle rect = Form::ClientRectangle;
Rectangle smallRect;
smallRect.X = rect.X + rect.Width / 4;
smallRect.Y = rect.Y + rect.Height / 4;
smallRect.Width = rect.Width / 2;
smallRect.Height = rect.Height / 2;
Pen^ redPen = gcnew Pen(Color::Red);
redPen->Width = 4;
g->DrawLine(redPen, 0, 0, rect.Width, rect.Height);
Pen^ bluePen = gcnew Pen(Color::Blue);
bluePen->Width = 10;
g->DrawArc( bluePen, smallRect, 90, 270 );
}
Но приложение, допустим, Win32, и там нет PaintEventArgs.
Подскажите как рисовать просто в окне(как я понял от PaintEventArgs берется только дескриптор окна и RECT (эт я сам смогу)).
Последний раз редактировалось agrofyl2; 29.03.2009 в 15:57..
|
|
|

29.03.2009, 21:00
|
|
Постоянный
Регистрация: 05.07.2008
Сообщений: 555
Провел на форуме: 3134311
Репутация:
1467
|
|
agrofyl2
Долго так объяснять. Там очень много функций. Чтобы написать все понадобится штук 20 сообщений. Если хочешь-дай свою почту- я отправлю doc файл, который я сам состовлял изучая windows.h. Там все очень наглядно и полно примеров! Но, в двух словах, это делается так:
Создается пустое окно (это шаблон):
#include <windows.h> // Объявление функции окна (оконной процедуры) LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); HINSTANCE hInst; // Идентификатор приложения // Указатель на константную строку символов - имя программы и класса окна LPCSTR AppName = "MyProgramm"; // Точка входа в программу - функция WinMain int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { HWND hWnd; // Уникальный идентификатор окна (handle) MSG msg; // Объявление структуры типа MSG, для работы с сообщениями hInst = hInstance; // Сохраняем идентификатор приложения // Заполняем структуру WNDCLASS WNDCLASS wc; // Инициализируем выделенную для структуры память нулями ZeroMemory(&wc, sizeof(wc)); wc.style = CS_HREDRAW | CS_VREDRAW; wc.lpfnWndProc = (WNDPROC)WndProc; wc.hInstance = hInst; wc.hIcon = LoadIcon(hInst, IDI_APPLICATION); wc.hCursor = LoadCursor(NULL, IDC_ARROW); wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); wc.lpszClassName = AppName; RegisterClass(&wc); // Создаем и регистрируем оконный класс // Создаем окно программы hWnd = CreateWindow( AppName, // Имя класса окна AppName, // Заголовок окна WS_OVERLAPPEDWINDOW, // Стиль окна CW_USEDEFAULT, 0, // Горизонтальная и вертикальная позиции окна 300, 300, // Ширина и высота окна NULL, // Хендл родительского окна NULL, // Хендл меню hInst, // Идентификатор приложения NULL); // Дополнительные данные окна ShowWindow(hWnd, SW_SHOW); // Отображаем окно UpdateWindow(hWnd); // Перерисовываем окно // Стандартный цикл обработки сообщений while(GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; } // Оконная процедура LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) {
switch(msg)
{
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, msg, wParam, lParam);
}
return 0;
}
Окно создали, теперь как в нем рисовать:
Рисуем либо в case WM_PAINT, а именно:
HDC hdc; RECT rect; PAINTSTRUCT ps;//-глобальные переменные case WM_PAINT: hdc = BeginPaint(hWnd, &ps); RECT rt; GetClientRect(hWnd, &rect); DrawText(hdc, "Привет вот так", -1, &rect,DT_SINGLELINE ); EndPaint(hWnd, &ps); break; (он должен быть там же, где и case WM_DESTROY: PostQuitMessage(0); break  и там где: DrawText(hdc, "Привет", -1, &rect,DT_SINGLELINE ); мы пишем все для рисования, либо мы можем рисовать где угодно, но тогда надо написать строку hDC=GetDC(hWnd);НО! Не забываем удалять все объекты DeleteObject(hDC); А рисуем мы так: PatBlt(hDC,0,0,2000,1000,PATCOPY); -прямоугольник MoveToEx(hDC,10,20,NULL);LineTo(hDC,100 ,100);-линия ExtTextOut(hDC,10,10,NULL,NULL,"привет мир",9,NULL);-текст Ellipse(hDC,int x,int y,int z,int k);-эллипс
и тд.
Давай все таки отошлю.
|
|
|

30.03.2009, 01:19
|
|
Познающий
Регистрация: 11.01.2009
Сообщений: 47
Провел на форуме: 133496
Репутация:
8
|
|
я ща c++ учу не кто не сможет мне по асе отвечать на вопросы?
|
|
|

30.03.2009, 05:36
|
|
Постоянный
Регистрация: 05.07.2008
Сообщений: 555
Провел на форуме: 3134311
Репутация:
1467
|
|
Сообщение от kriPer
я ща c++ учу не кто не сможет мне по асе отвечать на вопросы?
_SEREGA_ Да)
kriPer С удовольствием..Ток как зделаешь обещенное мне) 
|
|
|

30.03.2009, 10:36
|
|
Участник форума
Регистрация: 09.08.2008
Сообщений: 139
Провел на форуме: 560332
Репутация:
15
|
|
Что-то не то с MYSQL библиотекой.
Делаю допустим такой код :
Код:
MYSQL *con;
con = mysql_init(NULL);
mysql_real_connect(con,"localhost","root","pass","test",3306,NULL,0);
for(int i = 0; i < 101; ++i) {
mysql_query(con,"...");
cout<<i<<endl;
}
Цикл работает 3-4 раза , ну вообще примерно так выглядет счет:
1
2
3
465874563
Если я уберу mysql_query(); то счет идет норм. Это мускль запрос кидается на ячейку с памятью под int i ? в запросе обычная вставка в бд.
|
|
|

30.03.2009, 10:53
|
|
Постоянный
Регистрация: 05.07.2008
Сообщений: 555
Провел на форуме: 3134311
Репутация:
1467
|
|
лучше каждый раз вставляй новую строку и сразу выводи счётчик на экран - так виднее будет в чём беда.
а вообще как я понял con - это база данных.
а нам нужно ещё таблицу выбрать(или создать) и уже в неё вставлять.
а то получается что мы прямо в базу суём
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|