在我的项目中,由于RNFetchBlob.fs.readFile(image.path, 'base64').then(data => //upload here );
的定义不明确,导致出现一些编译错误C2872
,在我设置-Include
之后,输出显示byte
是由于包含的文件:
C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Professional \ VC \ Tools \ MSVC \ 14.12.25827 \ include \ comdef.h
来自我的C2872
文件之一。
但是,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)
是在
c:\ Program Files(x86)\ Windows 套件\ 10 \ Include \ 10.0.16299.0 \ shared \ winerror.h
和FAILED
在
c:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Professional \ VC \ Tools \ MSVC \ 14.12.25827 \ include \ comutil.h
这是原因吗?
但是如果是这种情况,由于marco的使用情况,头文件如何包含在内?
或者,C ++编译器Visual Studio如何识别宏定义?
答案 0 :(得分:2)
所有功劳归功于Ken White。
编译后,由于#import "C:/Program Files/Common Files/System/ado/msado15.dll" rename("EOF", "adoEOF") rename("BOF", "adoBOF")
,将在项目的msado15.tlh
文件夹下生成一个Debug
,该文件夹的开头为:
// Created by Microsoft (R) C/C++ Compiler Version 14.12.25830.2 (dbe79e7e).
//
// c:\c20180411hp_cpp17_01\debug\msado15.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>
,瞧!