2012-10-01 119 views
0

我有一個C++ .NET COM DLL包裝到C#COM DLL,我很好奇,是否有可能在UNIX上使用Mono構建包裝?當我嘗試,我得到了很多錯誤,像這樣的:C++ .NET封裝到C#COM DLL(使用Mono構建)

$>/opt/mono/bin/mcs /target:library *.cpp -recurse:'*.cpp' -warn:0 -out:my.dll -r:System.Windows.Forms.dll -r:System.Data.dll -r:System.Xml.Linq.dll 

/AssemblyInfo.cpp(2,18): error CS1024: Wrong preprocessor directive 
/AssemblyInfo.cpp(4,6): error CS1041: Identifier expected, `namespace' is a keyword 
/AssemblyInfo.cpp(4,22): error CS1001: Unexpected symbol `;', expecting identifier 
/AssemblyInfo.cpp(42,1): error CS8025: Parsing error 

我還是新來的COM和單聲道,所以我道歉,如果這個想法基本上是錯誤的。

PS。如果有興趣,我可以包括實際的代碼,但我更關心一般機制。

+2

Mono是C#編譯器,而不是C++編譯器,這就是爲什麼它在編譯C++代碼時會產生錯誤。 –

+0

@dmakaitis謝謝!我想我已經假定它做了所有.NET,而不僅僅是C#。 =) – Nefariousity

回答

2

COM組件不是交叉平臺,它只能在Windows操作系統上運行,例如,Firefox使用的等效交叉平臺替代方案是XPCOM