2009-08-22 17 views
7

Bu soru önceden soruldu, ancak gerçekten tatmin edici bir çözüm bulamadım -Yerel C++ 'den C#,/clr veya COM?

C# ile yazılmış bir sınıf kitaplığım var ve bunu eski bir yerel C++ uygulamasından aramak istiyorum. Ana uygulama, bir konsol uygulaması olan Windows & Linux üzerinde derlenmiş, gerçekten yerli. Windows'da Microsoft .NET ve Linux'ta Mono kullanmayı kabul ederek C# sınıf kütüphanesini nasıl arayabilirim?

Windows'ta SWIG'ye ve COM arabirimleriyle sarmaya baktım, ancak çapraz platformda çalışan standart tanınmış bir çözüm var mı? yani jenerik, Microsoft .NET ve Mono ile birlikte çalışır, her defasında bir uygulama her yerde kullanılır.

Çözümler, tam sınıf arabirimleri C# etki alanından C++ etki alanına maruz bırakmalıdır.

Benzer sorular, örneğin yalnızca Windows çözümlere odaklanmaya -

Call C# methods from C++ without using COM

+0

Mono adamlara, bunu nasıl ihraç ettiklerini sormalısınız. –

cevap

5

bu çapraz platform yapmak istiyorsanız, ben% 100 Mono yaklaşımla gidiş öneriyoruz.

Mono, Linux ve Windows üzerinde çalışan temiz bir Embedding API ürününe sahiptir.

+0

İyi bir cevap, Mono'yu Windows'a gömdüğümde tam da aradığım şey değil, aynı zamanda hepsi çok manuel görünüyor. Bir kütüphaneye tam bir arayüz oluşturmak için çok fazla kazan plakası kodu yazmanız gerekecek, zaman alıcı ve kırılgan görünüyor, bana JNI'yi hatırlatıyor. SWIG gibi bir çeşit otomatik yol var mı diye mi merak ettim ya da sadece COM arayüzünü açığa vurdum. – titanae

+0

COM, iyi çalışıyor, ancak linux üzerinde çok iyi değil. SWIG sadece diğer yoldan gitmek için iyi ... Üzgünüm. –