Win API

Тема в разделе "WASM.BEGINNERS", создана пользователем Mark, 30 дек 2011.

  1. skyman1221

    skyman1221 New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2011
    Сообщения:
    24
    Winmm.lib мало подрубить над еще прототип прописать его или подрубить сразу Winmm.inc если такой есть
     
  2. Mark

    Mark Марк

    Публикаций:
    0
    Регистрация:
    15 сен 2011
    Сообщения:
    304
    O_o Он такого не знает

     
  3. Kaimi

    Kaimi Андрей

    Публикаций:
    0
    Регистрация:
    15 апр 2010
    Сообщения:
    120
    O_o
    А такое?!
    Код (Text):
    1. #pragma comment(lib, "winmm");
     
  4. Sholar

    Sholar New Member

    Публикаций:
    0
    Регистрация:
    16 окт 2011
    Сообщения:
    189
    Товарисч вроде на сях пишет.
    Если у тебя Visual Studio, пиши так: #pragma comment(lib, "Winmm.lib"), иначе добавляй в настройках проекта.
     
  5. skyman1221

    skyman1221 New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2011
    Сообщения:
    24
    Mark, имхо Win API лучше начинать изучать на masm
    там все выглядит куда более прозрачно
    я сам раньше хотел написать пару прог с Win API на с++ и все это закончилось простым CTRL+C CTRL+V
    а как эти проги точно работали изнутри я так и не понял до конца потому что не представлял в точности к примеру чем отличается указатель от переменной, что такое "куча" где она сидит и т.д.

    только перейдя на masm я врубился до конца что к чему и теперь могу спокойно вернуться на С++ и полностью понимая код писать приложения с Win API.

    так что мой совет качайте masm =)
    и книжку к нему http://libray.narod.ru/rapid/ass_samouch.html
    там написано как создавать окна что такое потоки ввода вывода и все изложено понятным языком как раз для начинающего
     
  6. yashechka

    yashechka Ростовский фанат Нарвахи

    Публикаций:
    90
    Регистрация:
    2 янв 2012
    Сообщения:
    1.449
    Адрес:
    Россия
    лол
     
  7. yashechka

    yashechka Ростовский фанат Нарвахи

    Публикаций:
    90
    Регистрация:
    2 янв 2012
    Сообщения:
    1.449
    Адрес:
    Россия
    А мне кажется что нужно начать с Петцольда и учебник по чистым сям. Без обид. Но что ты написал это смешно
    Через инклюд вставляются хидеры в масме - инки, а либы это при линковке
     
  8. yashechka

    yashechka Ростовский фанат Нарвахи

    Публикаций:
    90
    Регистрация:
    2 янв 2012
    Сообщения:
    1.449
    Адрес:
    Россия
    Добавь в проект эту либу и подключи правильный хидер
     
  9. Mark

    Mark Марк

    Публикаций:
    0
    Регистрация:
    15 сен 2011
    Сообщения:
    304
    Кстати у Петцольда в учебнике, кажется второй пример, (откуда я и взял PlaySound), не подключен Winmm.lib
     
  10. steelfactor

    steelfactor New Member

    Публикаций:
    0
    Регистрация:
    26 апр 2007
    Сообщения:
    501
    Подключен. В настройках проекта глянь получше (через свойства проекта или открой HelloWin.dsp).
    Для успешной линковки необходимые либы подключаются явно через директиву #pragma comment(lib, "winmm") либо же они указываются через пункт меню "Project->Settings".
     
  11. Mark

    Mark Марк

    Публикаций:
    0
    Регистрация:
    15 сен 2011
    Сообщения:
    304
    Так. Еще проблема. Я писал в DEV, но там не удобно. Перешел в VS. Там до меня дошло, где пишет ошибку, перед тем надо писать L.
    Стал писать в VS. Но VS отказалась выводить текст на экран. Ругается. Пытался так:

    Помогите пожалуйста вывести текст, переменную или массив.
     
  12. steelfactor

    steelfactor New Member

    Публикаций:
    0
    Регистрация:
    26 апр 2007
    Сообщения:
    501
    :))) А что такое "L" ты знаешь?
    Почитай о символьных и строковых типах данных для ANSI и Unicode, разнице между Unicode- и ANSI-функциями в Windows.
    P.S.
    Функция TextOut требует четвертым параметром LPCTSTR, а ты ей что передаешь?
    Замени char ch[101] на TCHAR someText[ ] = "твой текст" + strlen на что-то другое, высчитывающее длину TCHAR-строки
     
  13. Mark

    Mark Марк

    Публикаций:
    0
    Регистрация:
    15 сен 2011
    Сообщения:
    304
    steelfactor

    А можно на примере кода?)
     
  14. Mark

    Mark Марк

    Публикаций:
    0
    Регистрация:
    15 сен 2011
    Сообщения:
    304
    Что-то типо того?

     
  15. yashechka

    yashechka Ростовский фанат Нарвахи

    Публикаций:
    90
    Регистрация:
    2 янв 2012
    Сообщения:
    1.449
    Адрес:
    Россия
    Ты что уже на ++ сы перешел 0_0
     
  16. yashechka

    yashechka Ростовский фанат Нарвахи

    Публикаций:
    90
    Регистрация:
    2 янв 2012
    Сообщения:
    1.449
    Адрес:
    Россия
    char *ch = "Привет!";
    hDC = GetDC(hwnd);
    TextOut(hDC, 500, 300, ch, strlen(ch));---ищи описание на мсдн
     
  17. Mark

    Mark Марк

    Публикаций:
    0
    Регистрация:
    15 сен 2011
    Сообщения:
    304
    yashechka

    Не понял) Мне просто нужно вывести текст
     
  18. yashechka

    yashechka Ростовский фанат Нарвахи

    Публикаций:
    90
    Регистрация:
    2 янв 2012
    Сообщения:
    1.449
    Адрес:
    Россия
    Parameters
    hdc [in]

    A handle to the device context.
    nXStart [in]

    The x-coordinate, in logical coordinates, of the reference point that the system uses to align the string.
    nYStart [in]

    The y-coordinate, in logical coordinates, of the reference point that the system uses to align the string.
    lpString [in]

    A pointer to the string to be drawn. The string does not need to be zero-terminated, because cchString specifies the length of the string.
    cchString [in]

    The length of the string pointed to by lpString, in characters.
    Return value

    If the function succeeds, the return value is nonzero.

    If the function fails, the return value is zero.
     
  19. Mark

    Mark Марк

    Публикаций:
    0
    Регистрация:
    15 сен 2011
    Сообщения:
    304
    А так мона?

    Только там какая-то крокозябра (одна) после NEW отображается.
     
  20. yashechka

    yashechka Ростовский фанат Нарвахи

    Публикаций:
    90
    Регистрация:
    2 янв 2012
    Сообщения:
    1.449
    Адрес:
    Россия
    Забей на эту L. Почитай про эти функции

    BeginPaint
    GetClientRect
    DrawText
    EndPaint
    про сообщение WM_PAINT