Καλησπέρα, θέλω να φτίαξω ένα .Net Com class που να μπορώ να το χρησιμοποιώ απο την vb6. Εχω κάνει τα εξής:
namespace ClassLibrary1
{
[Guid("D7426A5F-8689-4fcb-8318-328E19B1F088")]
[ClassInterface(ClassInterfaceType.None)]
[ComDefaultInterface(typeof(IClass1))]
public class Class1 : ClassLibrary1.IClass1
{
public Class1() { }
double [] pt = new double[]{0,0,0};
[DispId(2)]
public int IntValue { get { return 1; } set { } }
[DispId(1)]
public object CenterPoint
{
get
{
return pt;
}
//[param: In, MarshalAs(UnmanagedType.Struct)]
set
{
//; pt = (double[])value;
}
}
}
[Guid("9509FBAF-A16A-4193-B0C2-E9B7C86C75BE")]
//[TypeLibType(0x1040)]
public interface IClass1
{
object CenterPoint { get; set; }
int IntValue { get; set; }
}
}
και αυτό που θέλω να γίνεται απο την vb6 ειναι το εξής απλό:
Dim a As ClassLibrary1.Class1
Set a = New Class1
dim p as Variant
set p=a.CenterPoint 'ayto douleyei mia xara
a.CenterPoint= array(1.0,1.0,1.0) 'ayto petaei object required error 424 kai me set kai me let
εχω δοκιμάσει παρα πολά και διαφορετικά πράγματα όπως το ClassInterfaceType.AutoDispach που ναι μεν λύνει το πρόβλημα αλλα στο intellisence και στον object browser δεν βλέπω τα properties. Πρέπει να κάνω marshalas και αν ναι σε τι type;
Ευχαριστώ προκαταβολικά.