这段代码错在哪里?怎样修改才能顺利通过?附代码,和错误提示.
SYSMETS.H
-------
/*
SYSMETS.H -- System metrics display structure
*/
#define NUMLINES ((int)(sizeof sysmetrics / sizeof sysmetrics[0]))
struct
{
int Index;
TCHAR *szLabel;
TCHAR *szDesc;
}
sysmetrics[] =
{
SM_CXSCREEN,TEXT("SM_CXSCREEN"),
TEXT("Screen width in pixels"),
SM_CYSCREEN,TEXT("SM_CYSCREEN"),
TEXT("Screen height in pixels"),
SM_CXVSCROLL,TEXT("SM_CXVSCROLL"),
TEXT("Vertical scroll width"),
SM_CYHSCROLL,TEXT("SM_CYHSCROLL"),
TEXT("Horizontal scroll height"),
SM_CYCAPTION,TEXT("SM_CYCAPTION"),
TEXT("Caption bar height"),
SM_CXBORDER,TEXT("SM_CXBORDER"),
TEXT("Window border width"),
SM_CYBORDER,TEXT("SM_CYBORDER"),
TEXT("Window border height"),
SM_CXFIXEDFRAME,TEXT("SM_CXFIXEDFRAME"),
TEXT("Dialog window frame width"),
SM_CYFIXEDFRAME,TEXT("SM_CYFIXEDFRAME"),
TEXT("Dialog window frame height"),
SM_CYVTHUMB,TEXT("SM_CYVTHUMB"),
TEXT("Vertical scroll thumb height"),
SM_CXHTHUMB,TEXT("SM_CXHTHUMB"),
TEXT("Horizontal scroll thumb width"),
SM_CXICON,TEXT("SM_CXICON"),
TEXT("Icon width"),
SM_CYICON,TEXT("SM_CYICON"),
TEXT("Icon height"),
SM_CXCURSOR,TEXT("SM_CXCURSOR"),
TEXT("Cursor width"),
SM_CYCURSOR,TEXT("SM_CYCURSOR"),
TEXT("Cursor height"),
SM_CYMENU,TEXT("SM_CYMENU"),
TEXT("Menu bar height"),
SM_CXFULLSCREEN,TEXT("SM_CXFULLSCREEN"),
TEXT("Full screen client area width"),
SM_CYFULLSCREEN,TEXT("SM_CYFULLSCREEN"),
TEXT("Full screen client area height"),
SM_CYKANJIWINDOW,TEXT("SM_CYKANJIWINDOW"),
TEXT("Kanji window height"),
SM_MOUSEPRESENT,TEXT("SM_MOUSEPRESENT"),
TEXT("Mouse present flag"),
SM_CYVSCROLL,TEXT("SM_CYVSCROLL"),
TEXT("Vertical scroll arrow height"),
SM_CXHSCROLL,TEXT("SM_CXHSCROLL"),
TEXT("Horizontal scroll arrow width"),
SM_DEBUG,TEXT("SM_DEBUG"),
TEXT("Debug version flag"),
SM_SWAPBUTTON,TEXT("SM_SWAPBUTTON"),
TEXT("Mouse buttons swapped flag"),
SM_CXMIN,TEXT("SM_CXMIN"),
TEXT("Minimum window width"),
SM_CYMIN,TEXT("SM_CYMIN"),
TEXT("Minimum window height"),
SM_CXSIZE,TEXT("SM_CXSIZE"),
TEXT("Min/Max/Close button width"),
SM_CYSIZE,TEXT("SM_CYSIZE"),
TEXT("Min/Max/Close button height"),
SM_CXSIZEFRAME,TEXT("SM_CXSIZEFRAME"),
TEXT("Window sizing frame width"),
SM_CYSIZEFRAME,TEXT("SM_CYSIZEFRAME"),
TEXT("Window sizing frame height"),
SM_CXMINTRACK,TEXT("SM_CXMINTRACK"),
TEXT("Minimum window tracking width"),
SM_CYMINTRACK,TEXT("SM_CYMINTRACK"),
TEXT("Minimum window tracking height"),
SM_CXDOUBLECLK,TEXT("SM_CXDOUBLECLK"),
TEXT("Double click x tolerance"),
SM_CYDOUBLECLK,TEXT("SM_CYDOUBLECLK"),
TEXT("Double click y tolerance"),
SM_CXICONSPACING,TEXT("SM_CXICONSPACING"),
TEXT("Horizontal icon spacing"),
SM_CYICONSPACING,TEXT("SM_CYICONSPACING"),
TEXT("Vertical icon spacing"),
SM_MENUDROPALIGNMENT,TEXT("SM_MENUDROPALIGNMENT"),
TEXT("Left or right menu drop"),
SM_PENWINDOWS,TEXT("SM_PENWINDOWS"),
TEXT("Pen extensions installed"),
SM_DBCSENABLED,TEXT("SM_DBCSENABLED"),
TEXT("Double-Byte Char Set enabled"),
SM_CMOUSEBUTTONS,TEXT("SM_CMOUSEBUTTONS"),
TEXT("Number of mouse buttons"),
SM_SECURE,TEXT("SM_SECURE"),
TEXT("Security present flag"),
SM_CXEDGE,TEXT("SM_CXEDGE"),
TEXT("3-D border width"),
SM_CYEDGE,TEXT("SM_CYEDGE"),
TEXT("3_D border height"),
SM_CXMINSPACING,TEXT("SM_CXMINSPACING"),
TEXT("Minimized window spacing width"),
SM_CYMINSPACING,TEXT("SM_CYMINSPACING"),
TEXT("Minimized window spacing height"),
SM_CXSMICON,TEXT("SM_CXSMICON"),
TEXT("Small icon width"),
SM_CYSMICON,TEXT("SM_CYSMICON"),
TEXT("Small icon height"),
SM_CYSMCAPTION,TEXT("SM_CYSMCAPTION"),
TEXT("Small caption height"),
SM_CXSMSIZE,TEXT("SM_CXSMSIZE"),
TEXT("Small caption button width"),
SM_CYSMSIZE,TEXT("SM_CYSMSIZE"),
TEXT("Small caption button height"),
SM_CXMENUSIZE,TEXT("SM_CXMENUSIZE"),
TEXT("Menu bar button width"),
SM_CYMENUSIZE,TEXT("SM_CYMENUSIZE"),
TEXT("Menu bar button height"),
SM_ARRANGE,TEXT("SM_ARRANGE"),
TEXT("How minimized windows arranged"),
SM_CXMINIMIZED,TEXT("SM_CXMINIMIZED"),
TEXT("Minimized window width"),
SM_CYMINIMIZED,TEXT("SM_CYMINIMIZED"),
TEXT("Minimized window height"),
SM_CXMAXTRACK,TEXT("SM_CXMAXTRACK"),
TEXT("Maximum draggable width"),
SM_CYMAXTRACK,TEXT("SM_CYMAXTRACK"),
TEXT("Maximum draggable height"),
SM_CXMAXIMIZED,TEXT("SM_CXMAXIMIZED"),
TEXT("Width of maximized window"),
SM_CYMAXIMIZED,TEXT("SM_CYMAXIMIZED"),
TEXT("Height of maximized window"),
SM_NETWORK,TEXT("SM_NETWORK"),
TEXT("Network present flag"),
SM_CLEANBOOT,TEXT("SM_CLEANBOOT"),
TEXT("How system was booted"),
SM_CXDRAG,TEXT("SM_CXDRAG"),
TEXT("Avoid drag x tolerance"),
SM_CYDRAG,TEXT("SM_CYDRAG"),
TEXT("Avoid drag y tolerance"),
SM_SHOWSOUNDS,TEXT("SM_SHOWSOUNDS"),
TEXT("Present sounds visually"),
SM_CXMENUCHECK,TEXT("SM_CXMENUCHECK"),
TEXT("Menu check-mark width"),
SM_CYMENUCHECK,TEXT("SM_CYMENUCHECK"),
TEXT("Menu check-mark height"),
SM_SLOWMACHINE,TEXT("SM_SLOWMACHINE"),
TEXT("Slow processor flag"),
SM_MIDEASTENABLED,TEXT("SM_MIDEASTENABLED"),
TEXT("Hebrew and Arabic enabled flag"),
SM_MOUSEWHEELPRESENT,TEXT("SM_MOUSEWHEELPRESENT"),
TEXT("Mouse wheel present flag"),
SM_XVIRTUALSCREEN,TEXT("SM_XVIRTUALSCREEN"),
TEXT("Virtual screen x origin"),
SM_YVIRTUALSCREEN,TEXT("SM_YVIRTUALSCREEN"),
TEXT("Virtual screen y origin"),
SM_CXVIRTUALSCREEN,TEXT("SM_CXVIRTUALSCREEN"),
TEXT("Virtual screen width"),
SM_CYVIRTUALSCREEN,TEXT("SM_CYVIRTUALSCREEN"),
TEXT("Virtual screen height"),
SM_CMONITORS,TEXT("SM_CMONITORS"),
TEXT("Number of monitors"),
SM_SAMEDISPLAYFORMAT,TEXT("SM_SAMEDISPLAYFORMAT"),
TEXT("Same color format flag")
}
-------
SYSMETS1.C
-------
/*
SYSMETS1.C -- System Metrics Display Program No.1
(c) Charles Petzold,1998
*/
#include <windows.h>
#include "SYSMETS.H"
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,PSTR szCmdLine,int iCmdShow)
{
static TCHAR szAppName[] = TEXT("SysMets1");
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("Get System Metrics No.1"),
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)
{
static int cxChar,cxCaps,cyChar;
HDC hdc;
int i;
PAINTSTRUCT ps;
TCHAR szBuffer[10];
TEXTMETRIC tm;
switch(message)
{
case WM_CREATE:
hdc = GetDC(hwnd);
GetTextMetrics(hdc,&tm);
cxChar = tm.tmAveCharWidth;
cxCaps = (tm.tmPitchAndFamily&1?3:2)*cxChar/2;
cyChar = tm.tmHeight + tm.tmExternalLeading;
ReleaseDC(hwnd,hdc);
return 0;
case WM_PAINT:
hdc = BeginPaint(hwnd,&ps);
for(i=0;i<NUMLINES;i++)
{
TextOut(hdc,0,cyChar*i,sysmetrics[i].szLabel,lstrlen(sysmetrics[i].szLabel));
TextOut(hdc,22*cxCaps,cyChar*i,sysmetrics[i].szDesc,lstrlen(sysmetrics[i].szDesc));
SetTextAlign(hdc,TA_RIGHT|TA_TOP);
TextOut(hdc,22*cxCaps+40*cxChar,cyChar*i,szBuffer,wsprintf(szBuffer,TEXT("%5d"),GetSystemMetrics(sysmetrics[i].iIndex)));
SetTextAlign(hdc,TA_LEFT|TA_TOP);
}
EndPaint(hwnd,&ps);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hwnd,message,wParam,lParam);
}
-------
错误提示:
-------
Deleting intermediate files and output files for project 'SYSMETS1 - Win32 Debug'.
--------------------Configuration: SYSMETS1 - Win32 Debug--------------------
Compiling...
SYSMETS1.CPP
c:\program files\microsoft visual studio\myprojects\sysmets1\sysmets.h(152) : error C2065: 'SM_MOUSEWHEELPRESENT' : undeclared identifier
c:\program files\microsoft visual studio\myprojects\sysmets1\sysmets.h(154) : error C2065: 'SM_XVIRTUALSCREEN' : undeclared identifier
c:\program files\microsoft visual studio\myprojects\sysmets1\sysmets.h(156) : error C2065: 'SM_YVIRTUALSCREEN' : undeclared identifier
c:\program files\microsoft visual studio\myprojects\sysmets1\sysmets.h(158) : error C2065: 'SM_CXVIRTUALSCREEN' : undeclared identifier
c:\program files\microsoft visual studio\myprojects\sysmets1\sysmets.h(160) : error C2065: 'SM_CYVIRTUALSCREEN' : undeclared identifier
c:\program files\microsoft visual studio\myprojects\sysmets1\sysmets.h(162) : error C2065: 'SM_CMONITORS' : undeclared identifier
c:\program files\microsoft visual studio\myprojects\sysmets1\sysmets.h(164) : error C2065: 'SM_SAMEDISPLAYFORMAT' : undeclared identifier
c:\program files\microsoft visual studio\myprojects\sysmets1\sysmets1.cpp(9) : error C2143: syntax error : missing ';' before 'PCH creation point'
c:\program files\microsoft visual studio\myprojects\sysmets1\sysmets1.cpp(79) : error C2039: 'iIndex' : is not a member of '__unnamed'
c:\program files\microsoft visual studio\myprojects\sysmets1\sysmets.h(8) : see declaration of '__unnamed'
Error executing cl.exe.
SYSMETS1.exe - 9 error(s), 0 warning(s)
-------
编译环境为 VC++ 6.0
-------
相关推荐
C#古剑奇谭存档修改器源代码教程
htmltable {th, td {th {pre {简介:本项目是一个C#开发的古剑奇谭存档编辑器,使用Visual Studio 2010实现,提供了自动备份、物品搜索修改、一键修改、分类详细、物品说明等实用功能。源代码包含丰富的注释,便于学习和理解。项目涵盖了C#编程基础、文件I/O操作、数据结构设计、用户界面交互和错误处理等关键技术点。
54、MATLAB代码的透明度与错误处理
本文探讨了MATLAB编程中的两个核心主题:代码的透明变量访问和错误处理机制。透明变量访问确保了MATLAB在扫描代码时能够准确识别变量,这对函数参数验证和并行计算环境尤为重要。错误处理部分详细介绍了如何利用try/catch块和MException对象捕获、生成和处理异常,从而提升程序的健壮性。通过综合应用示例,展示了如何结合透明代码与错误处理技术,实现可靠的程序开发。
高校及科研院所如何利用外部数据完善技术转移转化机制.docx
科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。
完全复现虚拟同步发电机VSG自适应惯量阻尼控制仿真、根轨迹、调节系数对比(Simulink仿真、Matlab代码实现)
内容概要:本文档围绕“【完全复现】虚拟同步发电机VSG自适应惯量阻尼控制仿真、根轨迹、调节系数对比”这一主题,利用Simulink和Matlab平台,系统性地实现了虚拟同步发电机(VSG)的自适应惯量与阻尼控制策略的建模与仿真。内容涵盖VSG的核心控制原理、系统动态响应特性分析、根轨迹绘制以及在不同调节系数下的性能对比研究,旨在深入剖析关键控制参数对系统稳定性与动态性能的影响机制,为新能源并网系统中提升频率支撑能力和暂态稳定性的控制策略设计提供理论依据和技术支持。; 适合人群:具备扎实的电力系统分析与自动控制理论基础,熟练掌握Matlab/Simulink仿真工具,主要从事新能源发电、微电网运行、电力电子变换器控制或电力系统稳定研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①开展虚拟同步发电机(VSG)的建模与先进控制策略的深入研究;②探究自适应惯量与阻尼控制对改善电网频率响应速度和平抑功率波动的作用机理;③运用根轨迹法进行系统稳定性分析,并指导控制器参数的优化整定;④完成高水平学术论文撰写或科研项目申报所需的仿真复现实验。; 阅读建议:本资源以“完全复现”为核心目标,提供了完整的仿真模型与配套代码。使用者应在深入理解同步发电机转子运动方程、虚拟惯量及阻尼物理意义的基础上,结合电力系统暂态稳定理论,逐步操作并调试仿真模型,尤其需关注不同调节系数变化对系统动态性能指标(如超调量、调节时间)的影响,从而深化对VSG内在控制机制与稳定边界的认知。
前端开发基于history.js的HTML5与HTML4浏览器兼容方案:单页应用无刷新历史状态管理技术实现-dQ4ehf7C1792158475
内容概要:本文系统介绍了如何利用history.js实现单页应用(SPA)在HTML5c与HTML4浏览器间s草错发的无缝历史状态管理。通过封装原生History API并在不支持的浏览器中自动降级为哈希路由,history.js解决了因浏览器兼容性导致的后退按钮失效、URL混乱等问题。文章详细讲解了其核心机制,包括状态对象管理、自动模式切换(HTML5 pushState vs HTML4 哈希)、状态数据持久化以及针,对Safari、IE等浏\览器的兼容性修复方案,并提供了从入门到实战的完整示例,涵盖初始化、事,件监听、页面加载及性能优化技巧。;DtPXB1792158476


