到目前为止,我很难将部分程序代码放在一起
#include <windows.h>
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#define MAX_BUFF_SIZE 1024
#define IDM_FILE_RUN 40001
#define IDM_APP_EXIT 40002
//Window Function
LRESULT CALLBACK WindowFunc(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain(HINSTANCE hThisInst, HINSTANCE hPrevInst,
LPSTR lpszArgs, int nWinMode)
{
WNDCLASS wcls;
HWND hwnd;
MSG msg;
// Name of window and window class
LPCWSTR szWinName = L"Threads Program";
LPCWSTR szClassName = L"ThreadsProgram";
wcls.hInstance = hThisInst;
wcls.lpszClassName = szClassName;
wcls.lpfnWndProc = WindowFunc;
wcls.style = 0;
wcls.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wcls.hCursor = LoadCursor(NULL, IDC_ARROW);
wcls.lpszMenuName = NULL;
wcls.cbClsExtra = 0;
wcls.cbWndExtra = 0;
wcls.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
// Register windows class
if(!RegisterClass(&wcls))
{
return 0;
}
// Create main window
hwnd = CreateWindow(szClassName,
szWinName,
WS_OVERLAPPEDWINDOW,
100,
100,
400,
400,
HWND_DESKTOP,
NULL,
hThisInst,
NULL );
// Show main window
ShowWindow(hwnd, nWinMode);
UpdateWindow(hwnd);
// Message loop
while(GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (int)msg.wParam;
}
LRESULT CALLBACK WindowFunc(HWND hMainWindow, UINT message,
WPARAM wParam, LPARAM lParam)
{
static char textBuffer[MAX_BUFF_SIZE];
static int nRead;
switch(message)
{
case WM_CREATE:
{
HMENU hMenu;
HMENU hMenuPopup;
// create menus
hMenu = CreateMenu();
hMenuPopup = CreateMenu();
// populate menus
AppendMenu(hMenuPopup, MF_STRING, IDM_FILE_RUN, L"&Choose Balls");
AppendMenu(hMenuPopup, MF_STRING, IDM_APP_EXIT, L"&Exit");
AppendMenu(hMenu, MF_POPUP, (UINT_PTR)hMenuPopup, L"&File");
// attach menus to main window
SetMenu(hMainWindow, hMenu);
}
break;
case WM_COMMAND:
{
// Obey command
switch(LOWORD(wParam))
{
case IDM_FILE_RUN:
{
srand (time(NULL));
for (int i = 0; i < 6; i++)
printf ("%i\n", (rand ()% 49) + 1);
return 0;
}
break;
case IDM_APP_EXIT:
SendMessage(hMainWindow, WM_CLOSE, 0, 0);
break;
}
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hMainWindow, message, wParam, lParam);
}
return 0;
}// Window function
错误消息说我有一个未声明的标识符及其与我的随机数部分相关,
case IDM_FILE_RUN:
{
srand (time(NULL));
for (int i = 0; i < 6; i++)
printf ("%i\n", (rand ()% 49) + 1);
return 0;
}
我不确定我需要写什么以及我需要写它来修复它。
由于
Error 9 error C2059: syntax error : ')' 108 1
Error 6 error C2065: 'i' : undeclared identifier 108 1
Error 8 error C2065: 'i' : undeclared identifier 108 1
Error 4 error C2143: syntax error : missing ')' before 'type' 108 1
Error 2 error C2143: syntax error : missing ';' before 'type' 108 1
Error 3 error C2143: syntax error : missing ';' before 'type' 108 1
Error 5 error C2143: syntax error : missing ';' before 'type' 108 1
答案 0 :(得分:0)
这可能是一个长镜头,但改变你的当前for循环看起来像这样:
int i;
for (i = 0; i < 6; i++)
...
可能是你的编译器不喜欢在for
中声明变量(除非我给它一个特殊的命令行选项,否则我不会这样做)