c – #import命令行等效

使用Visual Studio和Microsoft的C编译器,我们有几个源文件,它们使用特定于Microsoft的’#import’指令来导入类型库.例如:

#import my_type_lib.tlb

我想从源代码中删除#import,并将其替换为通过GNU Make执行的命令行步骤.构建期间可以使用必要的接口定义(.idl源代码).

如何删除对#import的依赖,并将其替换为通过命令行执行的专用构建工具?

最佳答案 据我所知,没有单独的工具可以从lib类型生成代码.

您可以执行#import一次,然后将生成的文件存储起来并将其作为常规源文件包含在内.但是,对类型库的更改需要新的监督构建来重新生成文件.

您使用的生成信息的哪些部分?如果您只使用它来获取IID,接口和CLSID,并且您拥有.IDL,则可以使用MIDL.EXE生成C表示.

如果您正在使用包装类(IxxxPtr),我认为您运气不足 – 这些是由#import生成的.

点赞