Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

PlaySound

6.9K
14 декабря 2004 года
Weer
8 / / 23.09.2004
Читаю книгу "Ч. Петзолд Программирование для Windows® 95"
Но споткнулся на первом же примере
Код:
/*------------------------------------------------------------
   HELLOWIN.C -- Displays "Hello, Windows 95!" in client area
                 (c) Charles Petzold, 1996
  ------------------------------------------------------------*/

#include <windows.h>

LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    PSTR szCmdLine, int iCmdShow)
     {
     static char szAppName[] = "HelloWin" ;
     HWND        hwnd ;
     MSG         msg ;
     WNDCLASSEX  wndclass ;

     wndclass.cbSize        = sizeof (wndclass) ;
     wndclass.style         = CS_HREDRAW | CS_VREDRAW ;
     wndclass.lpfnWndProc   = WndProc ;
     wndclass.cbClsExtra    = 0 ;
     wndclass.cbWndExtra    = 0 ;
     wndclass.hInstance     = hInstance ;
     wndclass.hIcon         = LoadIcon (NULL, IDI_APPLICATION) ;
     wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW) ;
     wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
     wndclass.lpszMenuName  = NULL ;
     wndclass.lpszClassName = szAppName ;
     wndclass.hIconSm       = LoadIcon (NULL, IDI_APPLICATION) ;

     RegisterClassEx (&wndclass) ;

     hwnd = CreateWindow (szAppName,         // window class name
                    "The Hello Program",     // window caption
                    WS_OVERLAPPEDWINDOW,     // window style
                    CW_USEDEFAULT,           // initial x position
                    CW_USEDEFAULT,           // initial y position
                    CW_USEDEFAULT,           // initial x size
                    CW_USEDEFAULT,           // initial y size
                    NULL,                    // parent window handle
                    NULL,                    // window menu handle
                    hInstance,               // program instance handle
                    NULL) ;                  // creation parameters

     ShowWindow (hwnd, iCmdShow) ;
     UpdateWindow (hwnd) ;

     while (GetMessage (&msg, NULL, 0, 0))
          {
          TranslateMessage (&msg) ;
          DispatchMessage (&msg) ;
          }
     return msg.wParam ;
     }

LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
     {
     HDC         hdc ;
     PAINTSTRUCT ps ;
     RECT        rect ;

     switch (iMsg)
          {
          case WM_CREATE :
               PlaySound ("hellowin.wav", NULL, SND_FILENAME | SND_ASYNC) ;
               return 0 ;

          case WM_PAINT :
               hdc = BeginPaint (hwnd, &ps) ;

               GetClientRect (hwnd, &rect) ;

               DrawText (hdc, "Hello, Windows 95!", -1, &rect,
                         DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;

               EndPaint (hwnd, &ps) ;
               return 0 ;

          case WM_DESTROY :
               PostQuitMessage (0) ;
               return 0 ;
          }

     return DefWindowProc (hwnd, iMsg, wParam, lParam) ;
     }

Компилирую со стандартными настройками и мне выдает ошибку
Цитата:
Linking...
HELLOWIN.OBJ : error LNK2001: unresolved external symbol __imp__PlaySoundA@12
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/HELLOWIN.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.


Трабл в PlaySound, но никак не пойму что не правильно, среда Visual C++ 6.

501
14 декабря 2004 года
hell_admin
110 / / 02.10.2004
Попробуй подключить mmsystem.h, и Добавить в Project->Settings->Link->Object/Library modules:
winmm.lib
2
14 декабря 2004 года
squirL
5.6K / / 13.08.2003
Цитата:
Originally posted by hell_admin
Попробуй подключить mmsystem.h, и Добавить в Project->Settings->Link->Object/Library modules:
winmm.lib



я бы на вашем месте не отвечал... совсем народ разучился мозгами шевелить! :x

501
14 декабря 2004 года
hell_admin
110 / / 02.10.2004
Цитата:
Originally posted by squirL


я бы на вашем месте не отвечал... совсем народ разучился мозгами шевелить! :x



Да ну че жалко что ли, у меня например когда MSDN'a небыло так я облазился искать к какой функции какой заголовочный файл нужен..

2
14 декабря 2004 года
squirL
5.6K / / 13.08.2003
Цитата:
Originally posted by hell_admin


Да ну че жалко что ли, у меня например когда MSDN'a небыло так я облазился искать к какой функции какой заголовочный файл нужен..



инетернет есть а MSDN нет??? не смешите меня... есть такая штука
http://msdn.microsoft.com/library/default.asp

501
14 декабря 2004 года
hell_admin
110 / / 02.10.2004
Цитата:
Originally posted by squirL


инетернет есть а MSDN нет??? не смешите меня... есть такая штука
http://msdn.microsoft.com/library/default.asp



Не повериш,но раньше были времена когда пиво было вкуснее, а девушки красивие, но зато интернет был только у знакомых на работе, а диски с MSDN не найти на простом пиратском рынке :)

2
15 декабря 2004 года
squirL
5.6K / / 13.08.2003
Цитата:
Originally posted by hell_admin


Не повериш,но раньше были времена когда пиво было вкуснее, а девушки красивие, но зато интернет был только у знакомых на работе, а диски с MSDN не найти на простом пиратском рынке :)



помню я эти времена... не надо меня сильно "омолаживать" :D только я говорю про сейчас. на форуме все больше вопросов, свидетельствующих о том, что народу лень шевелить серыми клеточками и пользоваться google... если есть форум есть и Online MSDN - логично?

6.9K
16 декабря 2004 года
Weer
8 / / 23.09.2004
Спасибо за помощь, я конечно залазил на msdn и посмотрел что там написано
Цитата:
Header: Declared in Mmsystem.h; include Windows.h.
Library: Use Winmm.lib.

.Как видно из кода с заголовком все правильно. А вот библиотеку добавить я не догадался. Просто я новичок в Visual C++ да и язык сам только недавно стал изучать
P.S
А пиво раньше наверное действительно вкуснее было, хотя раньше я его не пил:D

499
14 января 2005 года
madjahed
149 / / 14.01.2004
Цитата:
Originally posted by squirL

я бы на вашем месте не отвечал... совсем народ разучился мозгами шевелить! :x


Когда я был начинающим программистом на С++,
у меня возник такой же вопрос. МСДН у меня тогда не
было (интернет тоже), поэтому приходилось пользоваться WIN32 SDK, который взодитв поставку БИЛДЕРА. И думал я с неделю как это исправить.
(не худа без добра - зато перелопатил все настройки Visual C++ и узнал чё они означают)

501
15 января 2005 года
hell_admin
110 / / 02.10.2004
Раз уж пощел такой разговор, так может кто нибудь подскажет как изменять громкость того что проигрывается этим PlaySound'oм, или хотя бы громкость Windows вообще.
301
16 января 2005 года
lord Kelvin
897 / / 08.11.2004
Цитата:
Originally posted by hell_admin
Раз уж пощел такой разговор, так может кто нибудь подскажет как изменять громкость того что проигрывается этим PlaySound'oм, или хотя бы громкость Windows вообще.


Почитай о waveOutSetVolume.

501
16 января 2005 года
hell_admin
110 / / 02.10.2004
Цитата:
Originally posted by lord Kelvin

Почитай о waveOutSetVolume.



Я уже читал, непонятно откуда взять этот самый hWo

MMRESULT waveOutSetVolume(
HWAVEOUT hwo,
DWORD dwVolume
);

Parameters
hwo
Handle of an open waveform-audio output device. This parameter can also be a device identifier.

301
16 января 2005 года
lord Kelvin
897 / / 08.11.2004
 
Код:
DWORD AVolume=0xFFFF; /*Звук от 0x0000 (минимум) до 0xFFFF (максимум)*/
 if(waveOutSetVolume((void*)WAVE_MAPPER,AVolume)==MMSYSERR_NOERROR)ShowMessage("Ok!");

Это меняет общий звук в системе.
501
09 февраля 2005 года
hell_admin
110 / / 02.10.2004
Цитата:
Originally posted by lord Kelvin
Это меняет общий звук в системе.



А нельзя ли какнить поменять тока звук моей программы, а то пользователи побьют.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог