请帮帮忙啊 怎么解决啊 我的Borland c++ 编译器 编译console程序一些正常啊 是不是哪里设置有毛病呢??
请帮帮忙啊 怎么解决啊 我的Borland c++ 编译器 编译console程序一些正常啊 是不是哪里设置有毛病呢??
代码如下!!!!谢谢斑竹啦
#include <windows.h>
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance, PSTR szCmdLine,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 2000!"),-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); }
对 Borland 的 C++ Builder 我不熟,
不过这个程序在VC下运行时没有问题的。为了使函数 PlaySound()可以运行,需要作以下设置:
Project -> Settings.. -> link -> 在栏(Object/library modules: ) 内的最后添加上 WinMM.lib
这个library 包含了 windows 的 多媒体函数,在project 新创立的时候,这个库是没有自动加进去的,没有这个库,PlaySound 函数将不能正常工作。