[ C / C++ ] — начинающим: задаем вопросы (архивная - 2015)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. Glazz

    Glazz Elder - Старейшина

    Joined:
    9 Aug 2008
    Messages:
    116
    Likes Received:
    7
    Reputations:
    0
    я просто запускаю .ехе. Без среды и т.д. . Библиотека лежит и в windows\.. и в одной папке с .ехе
     
  2. groundhog

    groundhog Elder - Старейшина

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    Glazz, значит либо у тебя лежит кривая либа, либо она почему-то требует каких-то зависимостей (я такого не встречал), либо эта клиентская библиотека не той версии... Где ты её брал? В дистрибутиве mysql?
     
  3. Glazz

    Glazz Elder - Старейшина

    Joined:
    9 Aug 2008
    Messages:
    116
    Likes Received:
    7
    Reputations:
    0
    Да. Меня настораживает то, что он неправильно пишет адрес до библиотеки. Я подключал адрессом до библиотеки, он пишет там адресс до файла без слэша, если пишу -lmysql , он пишет, что не может покдлючить её. linker input file unused because linking not done
    Если при компиляции ложить библиотеку в другую папку, то он пишет - не могу найти -libmysql.dll . Почему сначала минус идет. О если библиотеку называю "-libmysql.dll" то он её находит.
     
    #2583 Glazz, 28 Mar 2009
    Last edited: 28 Mar 2009
  4. agrofyl2

    agrofyl2 New Member

    Joined:
    25 Apr 2008
    Messages:
    54
    Likes Received:
    4
    Reputations:
    0
    Здраствуйте.
    Я новичек в С++, помогите плиз:
    Как рисовать в C++ (Windows XP, Visual Studio 2008 Express)?
    Нашел пример
    Code:
    #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 (эт я сам смогу)).
     
    #2584 agrofyl2, 29 Mar 2009
    Last edited: 29 Mar 2009
  5. KaZ@NoVa

    KaZ@NoVa Elder - Старейшина

    Joined:
    5 Jul 2008
    Messages:
    368
    Likes Received:
    438
    Reputations:
    -16
    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);-эллипс

    и тд.
    Давай все таки отошлю.
     
    1 person likes this.
  6. kriPer

    kriPer New Member

    Joined:
    11 Jan 2009
    Messages:
    47
    Likes Received:
    3
    Reputations:
    0
    я ща c++ учу не кто не сможет мне по асе отвечать на вопросы?
     
  7. KaZ@NoVa

    KaZ@NoVa Elder - Старейшина

    Joined:
    5 Jul 2008
    Messages:
    368
    Likes Received:
    438
    Reputations:
    -16
    _SEREGA_ Да)

    kriPer С удовольствием..Ток как зделаешь обещенное мне) ;) :rolleyes:
     
  8. Glazz

    Glazz Elder - Старейшина

    Joined:
    9 Aug 2008
    Messages:
    116
    Likes Received:
    7
    Reputations:
    0
    Что-то не то с MYSQL библиотекой.
    Делаю допустим такой код :
    Code:
    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 ? в запросе обычная вставка в бд.
     
  9. KaZ@NoVa

    KaZ@NoVa Elder - Старейшина

    Joined:
    5 Jul 2008
    Messages:
    368
    Likes Received:
    438
    Reputations:
    -16
    лучше каждый раз вставляй новую строку и сразу выводи счётчик на экран - так виднее будет в чём беда.
    а вообще как я понял con - это база данных.
    а нам нужно ещё таблицу выбрать(или создать) и уже в неё вставлять.
    а то получается что мы прямо в базу суём
     
  10. Glazz

    Glazz Elder - Старейшина

    Joined:
    9 Aug 2008
    Messages:
    116
    Likes Received:
    7
    Reputations:
    0
    Имеете ввиду делать сразу после вызова
    MYSQL_RES res = mysql_store_result(con); ? - не помогло
    Ну если бы я делал выборку, то да. Хотя попробую.
    Ну int i изменяется после вызова запроса это 99% уверен( ну до вызова норм, после уже хз какое значение).
    а con , это указатель на дескриптор , для работы с БД. Таблицу я указываю в mysql_real_connect(...'tested'..);
     
    #2590 Glazz, 30 Mar 2009
    Last edited: 30 Mar 2009
  11. xismyname

    xismyname Elder - Старейшина

    Joined:
    7 Sep 2008
    Messages:
    77
    Likes Received:
    7
    Reputations:
    -5
    TCP Клиент/Сервер сокеты, язык C.
    ТУТ
     
  12. KaZ@NoVa

    KaZ@NoVa Elder - Старейшина

    Joined:
    5 Jul 2008
    Messages:
    368
    Likes Received:
    438
    Reputations:
    -16
    всё равно нужно в запросе указывать имя таблицы.
    просто если добавляется успешно, то "и" увеличится 100%.
     
  13. kriPer

    kriPer New Member

    Joined:
    11 Jan 2009
    Messages:
    47
    Likes Received:
    3
    Reputations:
    0
    тоолько начал пишу #include <lostream.h>

    int main()
    {
    count << "Hello World!\n";
    return 0;
    }
    а он отвечает
    1.cpp|1|lostream.h: No such file or directory|
    1.cpp|3|error: expected initializer before "int"|
    ||=== Build finished: 2 errors, 0 warnings ===|
    че за фигня
     
  14. razb

    razb Active Member

    Joined:
    24 Mar 2009
    Messages:
    658
    Likes Received:
    133
    Reputations:
    18
    не lostream.h а iostream.h
    и не count a cout
    А вообще читай книжки до конца и повнимательнее
     
  15. kriPer

    kriPer New Member

    Joined:
    11 Jan 2009
    Messages:
    47
    Likes Received:
    3
    Reputations:
    0
    спс а остальные ошибки
     
  16. kriPer

    kriPer New Member

    Joined:
    11 Jan 2009
    Messages:
    47
    Likes Received:
    3
    Reputations:
    0
    1.cpp|5|error: `count' was not declared in this scope|
    вот ща че пишет
     
  17. sebay

    sebay Member

    Joined:
    9 Mar 2009
    Messages:
    26
    Likes Received:
    22
    Reputations:
    0
    подскажите что такое srand(time(NULL)) и зачем оно нужно.
     
  18. razb

    razb Active Member

    Joined:
    24 Mar 2009
    Messages:
    658
    Likes Received:
    133
    Reputations:
    18
    установка максимального значения диапазона случайных чисел
     
    1 person likes this.
  19. sebay

    sebay Member

    Joined:
    9 Mar 2009
    Messages:
    26
    Likes Received:
    22
    Reputations:
    0
    а какие могут быть значения?как его вообще задавать?
     
  20. criz

    criz Elder - Старейшина

    Joined:
    4 Nov 2007
    Messages:
    293
    Likes Received:
    40
    Reputations:
    6
    sebay, любое unsigned-число.
     
    1 person likes this.
Thread Status:
Not open for further replies.