一行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。