#include < dwrite.h> 在 C++ 作品中,但在 C 中没有



一行test.c:

#include <dwrite.h>

在visual studio命令提示符中,

编译为c++ works: cl/C/Tp test.c

cl/C test.c

首先,我得到了一堆错误,就像这样:

C:Program Files (x86)Windows Kits10\include10.0.19041.0\umdwrite.h(671): error C2059: syntax error: ':'

第671行如下:

interface DWRITE_DECLARE_INTERFACE("739d886a-cef5-47dc-8769-1a8b41bebbb0") IDWriteFontFile : public IUnknown

预处理成c++

struct __declspec(uuid("739d886a-cef5-47dc-8769-1a8b41bebbb0")) __declspec(novtable) IDWriteFontFile : public IUnknown

预处理成C

struct   IDWriteFontFile : public IUnknown

和部分":公共IUnknown"碍手碍脚。我该怎么解决这个问题?

然后我在第1037行得到一个错误:错误C2061:语法错误:标识符'IDWriteGeometrySink'

interface ID2D1SimplifiedGeometrySink;
typedef ID2D1SimplifiedGeometrySink IDWriteGeometrySink;

预处理成C

struct ID2D1SimplifiedGeometrySink;
typedef ID2D1SimplifiedGeometrySink IDWriteGeometrySink;

最后,一堆涉及static_cast的错误,这是C没有的。

总之,dwrite.h不适合C语言吗?使用Visual Studio Community 2022。它在以前的任何版本中都有效吗?

我要做的是编译https://github.com/makuke1234/PongD2D

C没有继承,所以这个头文件很可能只有c++。

您链接的项目使用.cpp文件中的D2D,并将c++接口包装成C。

相关内容

  • 没有找到相关文章

最新更新