首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于PlaySound的有关问题

2012-09-10 
关于PlaySound的问题C/C++ code#include Windows.hLRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM)

关于PlaySound的问题

C/C++ code
#include <Windows.h>LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);int WINAPI WinMain( __in HINSTANCE hInstance, __in_opt HINSTANCE hPrevInstance, __in LPSTR szCmdLine, __in int iCmdShow ){    static TCHAR szAppName[] = TEXT("HelloWin");    HWND hwnd;    MSG msg;    WNDCLASS 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;    if(!RegisterClass(&wndclass))    {        MessageBox(NULL,TEXT("This program requires windows nt!"),szAppName,MB_ICONERROR);        return 0;    }    hwnd = CreateWindow(szAppName,        TEXT("The Hello Program"),        WS_OVERLAPPEDWINDOW,        CW_USEDEFAULT,        CW_USEDEFAULT,        CW_USEDEFAULT,        CW_USEDEFAULT,        NULL,        NULL,        hInstance,        NULL);    ShowWindow(hwnd,iCmdShow);    UpdateWindow(hwnd);    while (GetMessage(&msg,NULL,0,0))    {        TranslateMessage(&msg);        DispatchMessage(&msg);    }    return msg.wParam;}LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){    HDC hdc;    PAINTSTRUCT ps;    RECT rect;    switch(message)    {    case WM_CREATE:        PlaySound(TEXT("hellowin.wav"),NULL,SND_FILENAME|SND_ASYNC);        return 0;    case WM_PAINT:        hdc = BeginPaint(hwnd,&ps);        GetClientRect(hwnd,&rect);        DrawText(hdc,TEXT("Hello,Windows 98!"),-1,&rect,DT_SINGLELINE|DT_CENTER|DT_VCENTER);        EndPaint(hwnd,&ps);        return 0;    case WM_DESTROY:        PostQuitMessage(0);        return 0;    }    return DefWindowProc(hwnd,message,wParam,lParam);}

为什么我在vs上执行上时可以播放声音,直接打开生成完的exe可执行文件时就没有播放声音了……求解……

[解决办法]
应该是你的资源文件的路径问题,看一下它的路径是按照什么方式寻径的,同时还要看相对路径是相对于谁。
[解决办法]
把你的音频文件拷到exe同一个目录

热点排行