だから私はプレーンCでWin32プログラムを書いていて、それは描画にDirect2Dを使用しています。これまでのところ、これがCOMを使った最初の主要な実験であることを考えると、すべてがうまくいきました。フォントレンダリングにDirectWriteを使用するようになりましたが、障害があるようです。Direct2Dと他のほとんどのCOMオブジェクトには、CとC ++用に記述された個別のインターフェイスがありますが、DirectWriteにはWindowsSDKヘッダーにC++インターフェイスしかありません。これが見落としなのか意図的な決定なのかはわかりませんが、適切なCフレンドリーなヘッダーが与えられれば、Cでは問題なく機能するはずです。DirectWrite用に独自のヘッダーを作成すれば、問題ないはずです。
それで、これは私に質問の本質に私を連れて行きます:COMインターフェースのためにC ++スタイルのコードを取り、それをCフレンドリーなコードに変換するにはどうすればよいですか?自分でCOMインターフェイスを作成したことがないので、独自のDirectWriteヘッダーを作成する方法がわかりません。比較のためにDirect2DのCおよびC++インターフェイスヘッダーを並べて見てみましたが、頭を包み込むのは少し難しいです。皆さん、ありがとう!