标题:运行可执行文件,可没有响应怎么回事?
只看楼主
小旭哥
Rank: 2
等 级:论坛游民
帖 子:106
专家分:72
注 册:2012-11-4
结帖率:86.21%
已结贴  问题点数:5 回复次数:2 
运行可执行文件,可没有响应怎么回事?
下面是Windows程序设计,建立窗口,编译,生成可执行文件都没错,可是运行的时候没响应。求解?有人说链接错误,但是个人还没解决
默认连接中,已经将多媒体库链接进去了。
#include<windows.h>

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

int WINAPI WinMain(
  HINSTANCE hInstance,      // handle to current instance
  HINSTANCE hPrevInstance,  // handle to previous instance
  LPSTR lpCmdLine,          // command line
  int iCmdShow              // show state
)
{
    HWND hwnd;
    MSG msg;
    WNDCLASS wndclass;

    static TCHAR szAppName[] = TEXT( "HelloWin" );    // name of window class

//windows class
    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.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 );   //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 );
}
搜索更多相关主题的帖子: 程序设计 多媒体 previous Windows command 
2012-11-19 19:34
heroinearth
Rank: 10Rank: 10Rank: 10
来 自:云南曲靖
等 级:青峰侠
帖 子:430
专家分:1506
注 册:2011-10-24
得分:3 
你的代码是不是从哪拷来的?我的出错是:
Linking...
win.obj : error LNK2001: unresolved external symbol __imp__PlaySoundA@12
Debug/WinExpress.exe : fatal error LNK1120: 1 unresolved externals
执行 link.exe 时出错.
注销掉 PlaySound(TEXT("hellowin.wav"),NULL,SND_FILENAME | SND_ASYNC);这句就正常
或是在#include <windows.h>后面加上下面两句就正常
#include <mmsystem.h>
#pragma comment(lib, "WINMM.LIB")
下面是我的原代码:
程序代码:
#include <windows.h>

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

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int iCmdShow)
{
    static TCHAR szAppName[]=TEXT("HellWin");
    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.lpszClassName = szAppName;
    wndclass.lpszMenuName = NULL;

    if(!RegisterClass(&wndclass))
    {
        MessageBox(NULL,TEXT("This program requires Windows NT!"),szAppName,MB_ICONERROR);
        return 0;
    }
    hwnd = CreateWindow(szAppName,
        TEXT("TheHello 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);
}




[ 本帖最后由 heroinearth 于 2012-11-19 21:53 编辑 ]
2012-11-19 21:29
woxingx
Rank: 2
等 级:论坛游民
帖 子:46
专家分:68
注 册:2012-11-8
得分:3 
去百度吧
2012-11-19 22:59



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-387597-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.111692 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved