: error C2065: “SHGDN_INCLUDE_NONFILESYS”: 未声明的标识符

本文介绍了在 Windows NT 5.0 版本中,SHGDN_INCLUDE_NONFILESYS 标志不再可用的情况,并提供了替代方案来判断显示名称是否来自文件系统的建议。

http://www.bytecenter.de/mario-becker/selfdoc/programming/nsx/nsx_93.html

Remarks

Starting with Windows NT 5.0, the SHGDN_INCLUDE_NONFILESYS flag is no longer available. To determine if a display name is from a file system, call IShellFolder::GetAttributesOf and test for SFGAO_FILESYSTEM.


解决方法:不要使用这个宏了。
1>------ 已启动生成: 项目: NX11_NXOpenCPP_Wizard4, 配置: Debug x64 ------ 1> NX11_NXOpenCPP_Wizard4.cpp 1>NX11_NXOpenCPP_Wizard4.cpp(15): error C3861: “printf”: 找不到标识符 1>NX11_NXOpenCPP_Wizard4.cpp(40): error C2065: “UF_PI”: 未声明标识符 1>NX11_NXOpenCPP_Wizard4.cpp(61): error C2065: “UF_CURVE_lines_t”: 未声明标识符 1>NX11_NXOpenCPP_Wizard4.cpp(61): error C2146: 语法错误: 缺少“;”(在标识符“curve_def”的前面) 1>NX11_NXOpenCPP_Wizard4.cpp(61): error C2065: “curve_def”: 未声明标识符 1>NX11_NXOpenCPP_Wizard4.cpp(64): error C2065: “UF_CURVE_CREIVE”: 未声明标识符 1>NX11_NXOpenCPP_Wizard4.cpp(66): error C2065: “UF_CURVE_ASSOCIATIVE”: 未声明标识符 1>NX11_NXOpenCPP_Wizard4.cpp(67): error C2065: “curve_def”: 未声明标识符 1>NX11_NXOpenCPP_Wizard4.cpp(67): error C3861: “UF_CURVE_create_lines”: 找不到标识符 1>NX11_NXOpenCPP_Wizard4.cpp(75): error C2660: “UF_MODL_create_block1”: 函数不接受 9 个参数 1>NX11_NXOpenCPP_Wizard4.cpp(75): error C2660: “report_error: 函数不接受 3 个参数 1>NX11_NXOpenCPP_Wizard4.cpp(102): error C2660: “UF_MODL_create_cyl1”: 函数不接受 8 个参数 1>NX11_NXOpenCPP_Wizard4.cpp(102): error C2660: “report_error: 函数不接受 3 个参数 1>NX11_NXOpenCPP_Wizard4.cpp(114): error C2065: “UF_MODL_CIRCULAR_SINGLE_ROW”: 未声明标识符 1>NX11_NXOpenCPP_Wizard4.cpp(114): error C3861: “UF_MODL_create_circular_array”: 找不到标识符 1>NX11_NXOpenCPP_Wizard4.cpp(119): error C2660: “UF_MODL_unite_bodies_with_retained_options”: 函数不接受 3 个参数 1>NX11_NXOpenCPP_Wizard4.cpp(119): error C2660: “report_error: 函数不接受 3 个参数 1>NX11_NXOpenCPP_Wizard4.cpp(126): error C2660: “UF_MODL_create_cyl1”: 函数不接受 8 个参数 1>NX11_NXOpenCPP_Wizard4.cpp(126): error C2660: “report_error: 函数不接受 3 个参数 1>NX11_NXOpenCPP_Wizard4.cpp(127): error C2660: “UF_MODL_subtract_bodies”: 函数不接受 3 个参数 1>NX11_NXOpenCPP_Wizard4.cpp(127): error C2660: “report_error: 函数不接受 3 个参数 1>NX11_NXOpenCPP_Wizard4.cpp(130): error C3861: “UF_PART_save”: 找不到标识符 ========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
07-06
>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream(10): error C2143: 语法错误 : 缺少“;”(在“{”的前面) 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream(25): error C2065: “_Ptr_cin”: 未声明标识符 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream(25): error C2143: 语法错误 : 缺少“,”(在“;”的前面) 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream(26): error C2065: “_Ptr_cout”: 未声明标识符 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream(26): error C2143: 语法错误 : 缺少“,”(在“;”的前面) 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream(27): error C2065: “_Ptr_cerr”: 未声明标识符 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream(27): error C2143: 语法错误 : 缺少“,”(在“;”的前面) 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream(28): error C2065: “_Ptr_clog”: 未声明标识符 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream(28): error C2143: 语法错误 : 缺少“,”(在“;”的前面) 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream(30): error C2065: “_Ptr_wcin”: 未声明标识符 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream(30): error C2143: 语法错误 : 缺少“,”(在“;”的前面) 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream(31): error C2065: “_Ptr_wcout”: 未声明标识符 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream(31): error C2143: 语法错误 : 缺少“,”(在“;”的前面) 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream(32): error C2065: “_Ptr_wcerr”: 未声明标识符 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream(32): error C2143: 语法错误 : 缺少“,”(在“;”的前面) 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream(33): error C2065: “_Ptr_wclog”: 未声明标识符 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream(33): error C2143: 语法错误 : 缺少“,”(在“;”的前面) 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream(36): error C2143: 语法错误 : 缺少“;”(在“{”的前面) 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream(42): error C2143: 语法错误 : 缺少“;”(在“}”的前面) 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream(45): error C2143: 语法错误 : 缺少“;”(在“}”的前面) 1>MyColorSetter.cpp(17): error C2039: “cerr”: 不是“std”的成员 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf_defs.h(30): error C2143: 语法错误 : 缺少“;”(在“{”的前面) 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf_defs.h(63): error C2143: 语法错误 : 缺少“;”(在“{”的前面) 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf_defs.h(66): error C2143: 语法错误 : 缺少“;”(在“}”的前面) 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf_defs.h(155): error C2143: 语法错误 : 缺少“;”(在“}”的前面) 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf_ugopenint.h(26): error C2143: 语法错误 : 缺少“;”(在“{”的前面) 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf_ugopenint.h(60): error C2146: 语法错误: 缺少“,”(在标识符“retcod”的前面) 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf_ugopenint.h(60): error C2065: “retcod”: 未声明标识符 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf_ugopenint.h(68): error C2146: 语法错误: 缺少“,”(在标识符“param_len”的前面) 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf_ugopenint.h(68): error C2065: “param_len”: 未声明标识符 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf_ugopenint.h(68): error C2143: 语法错误 : 缺少“,”(在“)”的前面) 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf_ugopenint.h(163): error C2143: 语法错误 : 缺少“;”(在“{”的前面) 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf_ugopenint.h(177): error C2143: 语法错误 : 缺少“;”(在“}”的前面) 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf_ugopenint.h(179): error C2065: “UF_args_p_t”: 未声明标识符 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf_ugopenint.h(179): error C2143: 语法错误 : 缺少“,”(在“;”的前面) 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf_ugopenint.h(214): error C2065: “UF_args_p_t”: 未声明标识符 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf_ugopenint.h(238): error C2065: “UF_args_p_t”: 未声明标识符 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf_ugopenint.h(247): error C2143: 语法错误 : 缺少“;”(在“}”的前面) 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf.h(27): error C2143: 语法错误 : 缺少“;”(在“{”的前面) 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf.h(99): error C2143: 语法错误 : 缺少“;”(在“{”的前面) 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf.h(101): error C2065: “UF_CODESET_NOT_SUPPORT”: 未声明标识符 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf.h(102): error C2065: “UF_CODESET_ASCII”: 未声明标识符 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf.h(106): error C2065: “UF_CODESET_ISO8859_1”: 未声明标识符 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf.h(107): error C2065: “UF_CODESET_EUC”: 未声明标识符 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf.h(108): error C2065: “UF_CODESET_SJIS”: 未声明标识符 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf.h(109): error C2065: “UF_CODESET_ISO8859_4”: 未声明标识符 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf.h(111): error C2065: “UF_CODESET_ISO8859_5”: 未声明标识符 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf.h(113): error C2065: “UF_CODESET_ISO8859_8”: 未声明标识符 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf.h(114): error C2065: “UF_CODESET_BIG5”: 未声明标识符 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf.h(115): error C2065: “UF_CODESET_NT_866”: 未声明标识符 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf.h(116): error C2065: “UF_CODESET_ISO8859_2”: 未声明标识符 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf.h(118): error C2065: “UF_CODESET_NT_852”: 未声明标识符 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf.h(119): error C2065: “UF_CODESET_NT_862”: 未声明标识符 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf.h(120): error C2065: “UF_CODESET_KSC5601”: 未声明标识符 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf.h(120): fatal error C1003: 错误计数超过 100;正在停止编译
06-13
1>------ 已启动生成: 项目: Prog1, 配置: Debug Win32 ------ 1> Prog1.C 1>c:\exam\41000169\bc\324\prog1.c(28): error C2143: 语法错误 : 缺少“;”(在“类型”的前面) 1>c:\exam\41000169\bc\324\prog1.c(30): error C2065: “current_time”: 未声明标识符 1>c:\exam\41000169\bc\324\prog1.c(31): error C2065: “current_time”: 未声明标识符 1>c:\exam\41000169\bc\324\prog1.c(33): error C2065: “current_time”: 未声明标识符 1>c:\exam\41000169\bc\324\prog1.c(36): error C2065: “current_time”: 未声明标识符 1>c:\exam\41000169\bc\324\prog1.c(63): error C2143: 语法错误 : 缺少“;”(在“类型”的前面) 1>c:\exam\41000169\bc\324\prog1.c(64): error C2143: 语法错误 : 缺少“;”(在“类型”的前面) 1>c:\exam\41000169\bc\324\prog1.c(65): error C2143: 语法错误 : 缺少“;”(在“类型”的前面) 1>c:\exam\41000169\bc\324\prog1.c(66): error C2143: 语法错误 : 缺少“;”(在“类型”的前面) 1>c:\exam\41000169\bc\324\prog1.c(67): error C2143: 语法错误 : 缺少“;”(在“类型”的前面) 1>c:\exam\41000169\bc\324\prog1.c(69): error C2065: “completed”: 未声明标识符 1>c:\exam\41000169\bc\324\prog1.c(70): error C2065: “shortest_job_index”: 未声明标识符 1>c:\exam\41000169\bc\324\prog1.c(71): error C2143: 语法错误 : 缺少“;”(在“类型”的前面) 1>c:\exam\41000169\bc\324\prog1.c(74): error C2065: “current_time”: 未声明标识符 1>c:\exam\41000169\bc\324\prog1.c(74): error C2065: “is_completed”: 未声明标识符 1>c:\exam\41000169\bc\324\prog1.c(74): error C2109: 下标要求数组或指针类型 1>c:\exam\41000169\bc\324\prog1.c(75): error C2065: “shortest_burst_time”: 未声明标识符 1>c:\exam\41000169\bc\324\prog1.c(76): error C2065: “shortest_burst_time”: 未声明标识符 1>c:\exam\41000169\bc\324\prog1.c(77): error C2065: “shortest_job_index”: 未声明标识符 1>c:\exam\41000169\bc\324\prog1.c(82): error C2065: “shortest_job_index”: 未声明标识符 1>c:\exam\41000169\bc\324\prog1.c(83): error C2065: “current_time”: 未声明标识符 1>c:\exam\41000169\bc\324\prog1.c(85): error C2065: “shortest_job_index”: 未声明标识符 1>c:\exam\41000169\bc\324\prog1.c(85): error C2065: “current_time”: 未声明标识符 1>c:\exam\41000169\bc\324\prog1.c(85): error C2065: “shortest_job_index”: 未声明标识符 1>c:\exam\41000169\bc\324\prog1.c(86): error C2065: “shortest_job_index”: 未声明标识符 1>c:\exam\41000169\bc\324\prog1.c(86): error C2065: “shortest_job_index”: 未声明标识符 1>c:\exam\41000169\bc\324\prog1.c(86): error C2065: “shortest_job_index”: 未声明标识符 1>c:\exam\41000169\bc\324\prog1.c(87): error C2065: “shortest_job_index”: 未声明标识符 1>c:\exam\41000169\bc\324\prog1.c(87): error C2065: “shortest_job_index”: 未声明标识符 1>c:\exam\41000169\bc\324\prog1.c(87): error C2065: “shortest_job_index”: 未声明标识符 1>c:\exam\41000169\bc\324\prog1.c(88): error C2065: “is_completed”: 未声明标识符 1>c:\exam\41000169\bc\324\prog1.c(88): error C2065: “shortest_job_index”: 未声明标识符 1>c:\exam\41000169\bc\324\prog1.c(88): error C2109: 下标要求数组或指针类型 1>c:\exam\41000169\bc\324\prog1.c(89): error C2065: “completed”: 未声明标识符 1>c:\exam\41000169\bc\324\prog1.c(90): error C2065: “current_time”: 未声明标识符 1>c:\exam\41000169\bc\324\prog1.c(90): error C2065: “shortest_job_index”: 未声明标识符 ========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========我复制了你的代码产生了这样的错误
最新发布
11-14
在 Visual C++ 2010 学习版中,出现 `error C2143` 缺少“;”和未声明标识符(如 `current_time`、`completed` 等)的问题,可能由以下原因导致及对应解决办法: ### 未声明标识符问题 在 Visual C++ 2010 中,C 语言要求变量必须在代码块的开头进行声明。如果在代码块中间声明变量,就会出现未声明标识符的错误。例如,在 `for` 循环中直接声明循环变量可能会导致该问题。 **解决办法**:将变量声明移到代码块的开头。以下是修改后的代码示例: ```c #include <stdio.h> #define MAX_JOBS 10 typedef struct { int id; int arrival_time; int burst_time; int completion_time; int turnaround_time; int waiting_time; } Job; // 先来先服务调度算法 void fcfs(Job jobs[], int n) { int i, j; // 将变量声明移到开头 // 按到达时间排序 for (i = 0; i < n - 1; i++) { for (j = 0; j < n - i - 1; j++) { if (jobs[j].arrival_time > jobs[j + 1].arrival_time) { Job temp = jobs[j]; jobs[j] = jobs[j + 1]; jobs[j + 1] = temp; } } } int current_time = 0; for (i = 0; i < n; i++) { if (current_time < jobs[i].arrival_time) { current_time = jobs[i].arrival_time; } jobs[i].completion_time = current_time + jobs[i].burst_time; jobs[i].turnaround_time = jobs[i].completion_time - jobs[i].arrival_time; jobs[i].waiting_time = jobs[i].turnaround_time - jobs[i].burst_time; current_time = jobs[i].completion_time; } // 输出结果 printf("\n-------------先来先服务算法--------------\n"); printf("作业ID\t到达时间\t执行时间\t完成时间\t周转时间\t等待时间\n"); for (i = 0; i < n; i++) { printf("%d\t%d\t\t%d\t\t%d\t\t%d\t\t%d\n", jobs[i].id, jobs[i].arrival_time, jobs[i].burst_time, jobs[i].completion_time, jobs[i].turnaround_time, jobs[i].waiting_time); } } // 短作业优先调度算法 void sjf(Job jobs[], int n) { int i, j; // 将变量声明移到开头 // 按到达时间排序 for (i = 0; i < n - 1; i++) { for (j = 0; j < n - i - 1; j++) { if (jobs[j].arrival_time > jobs[j + 1].arrival_time) { Job temp = jobs[j]; jobs[j] = jobs[j + 1]; jobs[j + 1] = temp; } } } int completed = 0; int current_time = 0; int remaining_jobs = n; int shortest_job_index; int is_completed[MAX_JOBS] = {0}; while (completed != n) { shortest_job_index = -1; int shortest_burst_time = 9999; for (i = 0; i < n; i++) { if (jobs[i].arrival_time <= current_time && !is_completed[i]) { if (jobs[i].burst_time < shortest_burst_time) { shortest_burst_time = jobs[i].burst_time; shortest_job_index = i; } } } if (shortest_job_index == -1) { current_time++; } else { jobs[shortest_job_index].completion_time = current_time + jobs[shortest_job_index].burst_time; jobs[shortest_job_index].turnaround_time = jobs[shortest_job_index].completion_time - jobs[shortest_job_index].arrival_time; jobs[shortest_job_index].waiting_time = jobs[shortest_job_index].turnaround_time - jobs[shortest_job_index].burst_time; is_completed[shortest_job_index] = 1; completed++; current_time = jobs[shortest_job_index].completion_time; } } // 输出结果 printf("\n-------------短作业优先算法--------------\n"); printf("作业ID\t到达时间\t执行时间\t完成时间\t周转时间\t等待时间\n"); for (i = 0; i < n; i++) { printf("%d\t%d\t\t%d\t\t%d\t\t%d\t\t%d\n", jobs[i].id, jobs[i].arrival_time, jobs[i].burst_time, jobs[i].completion_time, jobs[i].turnaround_time, jobs[i].waiting_time); } } int main() { Job jobs[MAX_JOBS]; int n; int i; printf("请输入作业的数量: "); scanf("%d", &n); for (i = 0; i < n; i++) { jobs[i].id = i + 1; printf("请输入作业 %d 的到达时间和执行时间: ", i + 1); scanf("%d %d", &jobs[i].arrival_time, &jobs[i].burst_time); } fcfs(jobs, n); sjf(jobs, n); return 0; } ``` ### 缺少“;”问题 `error C2143` 缺少“;”错误通常是由于代码中某个语句没有正确结束,或者存在语法错误导致的。可能是忘记在语句末尾添加分号,或者括号、引号等符号没有正确匹配。 **解决办法**:仔细检查代码,确保每个语句都以分号结尾,并且所有的括号、引号等符号都正确匹配。可以通过代码编辑器的语法高亮功能来辅助检查。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值