Comdef.H的神秘包括
mysterious include of comdef.h
在我的项目中,由于byte
的定义不明确,C2872
有一些编译错误,在我设置-Include
后,输出显示C2872
是由于包含在文件中
C:\程序文件 (x86(\Microsoft 可视 Studio\2017\Professional\VC\Tools\MSVC\14.12.25827\include\comdef.h
来自我的一个myado.h
文件。
但是,这在myado.h
任何地方都没有这样的包含,为什么它被包括在内?
myado.h
做了这样的事情:
#import "C:/Program Files/Common Files/System/ado/msado15.dll" rename("EOF", "adoEOF") rename("BOF", "adoBOF")
#include <icrsint.h> // ADO C/C++ Record Binding Definitions
#define TESTHR(x) if FAILED(x) _com_issue_error(x)
,这里FAILED
是定义在
c:\Program Files (x86(\Windows 工具包\10\包含\10.0.16299.0\共享\winerror.h
和_com_issue_error
定义在
c:\程序文件 (x86(\Microsoft 可视 Studio\2017\Professional\VC\Tools\MSVC\14.12.25827\include\comutil.h
这是原因吗?
但是,如果是这种情况,由于marco的使用,头文件是如何被包含的?
或者,C++编译器Visual Studio如何识别宏定义?
所有的功劳都归于Ken White。
编译后,由于#import "C:/Program Files/Common Files/System/ado/msado15.dll" rename("EOF", "adoEOF") rename("BOF", "adoBOF")
,将在项目的Debug
文件夹下生成一个msado15.tlh
,其开头为:
// Created by Microsoft (R) C/C++ Compiler Version 14.12.25830.2 (dbe79e7e).
//
// c:c20180411hp_cpp17_01debugmsado15.tlh
//
// C++ source equivalent of type library C:/Program Files/Common Files/System/ado/msado15.dll
// compiler-generated file created 06/20/18 at 15:50:36 - DO NOT EDIT!
#pragma once
#pragma pack(push, 8)
#include <comdef.h>
瞧!
相关文章:
- 从矢量<无符号字符>转换为字符* 包括垃圾数据
- Windows 10-使用gtkmm-3.0库和g++[包括再现]的分段故障
- 为什么 cmake 许可证<>样式不包括?
- 计算平均值,不包括上次得分
- 从多个源构造一个对象,包括一个对象向量
- 在编译中包括 Botan 2
- 将值从另一个数组写入数组,不包括不需要的值 C++
- VS Code C++:不准确的系统包括路径错误(wchar.h,boost/lambda/lambda.hpp)
- 包括C++头文件
- CPP 包括 Azure DevOps 中的目录设置
- 包括STL,而不会乱扔全球范围
- 如何反转我的输入,包括否定
- 包括没有完整路径的我的库
- 如何在 android ndk 上链接 C 和 C++ 代码,以及 C 和 C++ 运行时库(包括 STL)?
- C++包括类名间距和类实例化
- 链接错误,包括我创建的相同头文件 - C++
- 标头,包括在 Swift 项目中使用C++文件时的错误
- 如果语句不包括文本行?
- 如何将字符串与结构(也包括字符串)进行比较?
- Comdef.H的神秘包括