【问题标题】:Warning treated as error - no 'object' file generated警告视为错误 - 未生成“对象”文件
【发布时间】:2017-11-08 08:58:50
【问题描述】:

我正在尝试构建我的第一个 COM Example,我创建了一个 VS 2012 项目。我在库中遇到了错误,我通过将 Windows 7 的 _WIN32_WINNT 更改为 0x0601 并显然将 StdAfx.h 中的 _WIN32_IE 更改为 0x0800 解决了这个问题。我还更改了Settings -> C/C++ -> Preprocessor 中的_WIN32_WINNT,现在我收到如下错误

1>------ Build started: Project: COM, Configuration: Debug x64 ------
1>  COMIntro.cpp
1>COMIntro.cpp(21): error C2220: warning treated as error - no 'object' file generated
1>COMIntro.cpp(21): warning C4100: 'envp' : unreferenced formal parameter
1>COMIntro.cpp(21): warning C4100: 'argv' : unreferenced formal parameter
1>COMIntro.cpp(21): warning C4100: 'argc' : unreferenced formal parameter
1>  StdAfx.cpp
1>  Generating Code...
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

是因为我的 windows SDK 版本是 7.1 还是一些兼容性问题?

【问题讨论】:

  • 也许项目设置说将警告视为错误?

标签: c++ windows com


【解决方案1】:

我应该先做一些搜索。我在 COM 和一些其他新概念之间纠结,我错过了传统 C++ 的注意事项

我只是使用演员表。未使用的变量导致了这个问题

(void)argc;
(void)argv;
(void)envp;

正确的解决方案 使用UNREFERENCED_PARAMETER 对我有用。

【讨论】:

  • 解决方案是什么?理解编译器消息“未引用的形式参数”?
  • 正确的解决方案..使用UNREFERENCED_PARAMETER 对我有用@KonstantinL
  • 下次请详细说明解决方案的用法。如果您不打算使用参数,可以使用 UNREFERENCED_PARAMETER 宏将其标记为未使用。用法(写在函数内):UNREFERENCED_PARAMETER(unused_variable);
猜你喜欢
  • 2013-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-09
  • 2011-01-05
  • 1970-01-01
  • 2012-01-13
  • 2022-08-03
相关资源
最近更新 更多