VB6 DLL dosyasında bulunan bir yönteme 3 isteğe bağlı boole parametresi ekledim. Onu barındıran sınıf, MultiUse (public) ve yöntemin kendisi Private'dır. Sınıf, bu yönteme yapılan kamu çağrılarına izin veren bir TLB'den belirli bir arayüz uygular.C#, isteğe bağlı parametrelere sahip VB6 yöntemlerini çağırmakta sorun yaşıyor mu?
3 isteğe bağlı parametreyi VB6 tarafına ekledikten sonra, ilgili C# kodunu değiştirdim, böylece 3 isteğe bağlı parametreyi belirtin. bulunamadı
Yöntem: 'Boole MyTLBName.IMyClassName.MyMethod (System.Object'ten Sistemi Ben bu kodu çalıştırmayı denediğinizde ancak, bu şu hata iletisiyle başarısız olur ... ince yapılı. Dize, Boole, Boole, Int32, Int32 ByRef, System.Object, System.Object, System.Object, Boole, Boole, Boolean) '.
Hata iletisinde tüm 3 boole parametresinin nasıl göründüğüne dikkat edin? Bana iyi görünüyor ... C# yöntemini çağırırken o 3 booleanı belirttiğimi biliyorum. Şüpheli
, ben OleView içinde MyTLBName.IMyClassName arayüzünü teslim ve bu testere:
[id (0x60030000)]
HRESULT MyMethod(
//Cut out the other parameters - they are working fine.
[in, optional, defaultvalue(-1)] VARIANT_BOOL blnMyFirstOptionalBoolean,
[in, optional, defaultvalue(-1)] VARIANT_BOOL blnMySecondOptionalBoolean,
[in, optional, defaultvalue(-1)] VARIANT_BOOL blnMyThirdOptionalBoolean,
[out, retval] VARIANT_BOOL* __MIDL_0324);
Yine, 3 isteğe bağlı parametreler görülebilir ve ince görünmek .
İşe yarayacakmış gibi gözüküyor ama belki bir şeyleri özlüyorum.
TLB'de "MyMethod" un başka bir versiyonunu oluşturmak zorunda kalmadan çalışmanın bir yolu var mı? (Farklı bir adla ve isteğe bağlı değil, 3 parametresiyle birlikte)
1 Vay. Ne acı. –
Bunu bir şans vereceğim ... Teşekkürler –
için Teknik cumhuriyeti bağlantısı bozuldu. –