从暴露给 COM 的 C# 类中提取 C/C++ 头文件
Posted
技术标签:
【中文标题】从暴露给 COM 的 C# 类中提取 C/C++ 头文件【英文标题】:Extract a C/C++ header file from a C# class exposed to COM 【发布时间】:2010-06-02 15:32:21 【问题描述】:我不确定我是否已在我的 C# 类中正确设置了我需要的所有内容,但它在 COM 中确实有效。我一直在寻找在 C/C++ 项目中成功使用的 C# 类的示例,但没有遇到任何问题。
我尝试使用 OLE/COM 对象视图应用程序打开 .tlb 文件并另存为 .h,但它给出了一些错误:MIDL1009:未知参数被忽略; MIDL1001:无法打开输入文件 Studio
“Studio”不是文件的名称,它是 Syslog,所以这对我来说是一个危险信号。
有什么想法吗?
【问题讨论】:
【参考方案1】:如果您有tlb
,则不需要头文件。 tlb 的#import
会自动为你生成。
#import "my.tlb" named_guids raw_interfaces_only
查看更多关于#import
here的信息。
【讨论】:
【参考方案2】:如果您已经将 C# 类公开给 COM,那么您应该使用 COM 互操作从您的 C++ 代码访问 COM Callable Wrapper。
无需尝试生成头文件。
如果您可以选择在您的 C++ 项目中运行托管代码,那么您甚至不需要 COM,您可以直接引用您的 C# 类并像从 C++ 中访问任何其他 .NET 对象一样访问它。
【讨论】:
以上是关于从暴露给 COM 的 C# 类中提取 C/C++ 头文件的主要内容,如果未能解决你的问题,请参考以下文章