2010-06-02 71 views
1

我不確定我是否已經在C#類中正確安裝了所需的所有內容,但它在COM中工作正常。我一直在尋找一個在C/C++項目中成功使用的C#類的例子,但沒有遇到任何問題。我嘗試使用OLE/COM對象視圖應用程序打開.tlb文件並保存爲.h,但它給出了一些錯誤:MIDL1009:忽略未知參數; MIDL1001:無法打開輸入文件工作室從暴露給COM的C#類中提取C/C++頭文件

「Studio」不是文件的名稱,它是Syslog,因此會向我提出紅旗。

任何想法?

回答

4

如果您有tlb,則不需要頭文件。 tlb的#import會自動爲您生成。

#import "my.tlb" named_guids raw_interfaces_only 

查看更多有關#importhere

2

如果您已將您的C#類暴露給COM,那麼您應該使用COM interop從C++代碼訪問COM Callable Wrapper。

沒有必要嘗試生成頭文件。

如果您可以選擇在C++項目中運行託管代碼,那麼您甚至不需要COM,只需直接引用您的C#類並像訪問C++中的任何其他.NET對象一樣訪問它即可。