私は、COM Interop として知られる野獣と長期にわたって遭遇してきました...
現在、OLE/COM オブジェクト ビューアによって生成された .idl ファイルから .tlb を生成しようとしています。ただし、Midl.exe を実行してコンパイルしようとすると、エラーが発生します。
.\Sim.API.IDL(236) : error MIDL2025 : syntax error : expecting a type s
pecification near "ImportFileStatus"
私の .idl ファイルは 1000 行を超える長さなので、特にここに投稿したくはありませんが、関心のある部分は次のとおりだと思います。
typedef [uuid(980B172E-19C1-389A-BB74-29A54737C5B4), version(1.0) ,
custom(0F21F359-AB84-41E8-9A78-36D110E6D2F9, "Sim.API.ImportFileResult")
]
struct tagImportFileResult {
ImportFileStatus _status;
LPSTR _message;
} ImportFileResult;
それから数行後...
typedef [uuid(A4B9A0FF-A2D4-3EC5-AB7E-69311B9122C8), version(1.0) ,
custom(0F21F359-AB84-41E8-9A78-36D110E6D2F9, "Sim.API.ImportFileStatus")
]
enum {
ImportFileStatus_Success = 0,
ImportFileStatus_VersionMismatch = 1,
ImportFileStatus_Failure = 2
} ImportFileStatus;
型指定エラーを修正するために、これらを尊重する必要があると感じています。ただし、これを行うと、新しい問題が発生します。
midl\oleaut32.dll : warning MIDL2368 : error generating type library, ignored :
Could not set UUID : tagImportFileResult (0x800288C6)
私はidl形式とmidl.exeの使用にかなり慣れていません。おそらく、私がやっていることに何か露骨な問題がありますか?
いつものように、どんな助けも大歓迎です:)