Toon posts:

[DCOM] C++ <-> UDT <-> VB vraagje

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb hier een rare fout:

IDL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
[
  uuid(6F7EA100-11F7-4250-A753-DBFC3D5FEB57),
  helpstring("Contact Information")
]
typedef struct ContactInformation_t {
  [helpstring("Name 1")     ]    BSTR           Name;
  [helpstring("Name 2")     ]    BSTR           Name2;
  [helpstring("Name 3")     ]    BSTR           Name3;
  [helpstring("Adress")     ]    BSTR           Adress;
  [helpstring("CountryCode")]    Country_t      Country;
  [helpstring("PostalCode") ]    long           PostalCode;
  [helpstring("City")       ]    BSTR           City;
  [helpstring("Telephone")  ]    BSTR           Telephone;
  [helpstring("Fax")        ]    BSTR           Fax;
  [helpstring("Own Logo")   ]    IPictureDisp*  OwnLogo;
} ContactInformation_t;

[
  uuid(6F7EA102-11F7-4250-A753-DBFC3D5FEB57),
  helpstring("All information needed for the label")
]
typedef struct LabelInformation_t {
  [helpstring("Sender-adress")           ]    ContactInformation_t       Sender;
  [helpstring("Receiver-adress")         ]    ContactInformation_t       Receiver;
  [helpstring("DPD Parcel Number")       ]    BSTR                       DPD_Number;
  [helpstring("Type Of Parcel")          ]    ParcelType_t               TypeOfParcel;
  [helpstring("NachName-data")           ]    NachNameData_t             NachName;
  [helpstring("How much is the weight")  ]    double                     Weight;
  [helpstring("How many parcels?")       ]    long                       SequenceIDOfParcel;
  [helpstring("How many parcels? (total")]    long                       TotalAmountOfParcels;
  [helpstring("Own reference number")    ]    BSTR                       OwnReferenceNumber;
} LabelInformation_t;


NachNameData_t is een structje, ParcelType_t is een enum, Country_t is een enum.

Het enige 'rare' veld is "IPictureDisp*", maar dit zou een Picture-object zijn in VB. Ik heb dit even nagechecked via de F2-toets in VB en dit geeft aan dat zelfs de PictureBox (de .Picture-methode) de IPictureDisp gebruikt...


Nu wat de fout is die ik krijg als ik 'Dim test as DPD_DllLib.LabelInformation_t' doe is de volgende:
code:
1
2
3
Compile error:

Variable uses an Automation type not supported in Visual Basic


Nu wat de help ervan zegt is dat ik een variable-type gebruikt heb dat VB niet kent. Akkoord, dan ben ik gaan zien. BSTR *check* long *check* enum *check* VARIANT_BOOL *check* double *check* 'IPictureDisp*' <-- euhm?

Dus kan er mij iemand zeggen waar ergens mijn fout hierin zit? Ik denk aan die IPictureDisp* ... Maar ik vind nergens info daarover :S

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 18:33
Ik weet niet waar het fout gaat, maar code als dit :

Visual Basic .NET:
1
2
3
4
Dim picDown as IPictureDisp

Set picDown = LoadResPicture(PIC_MOVE_DOWN, vbResBitmap)
Set imgDown.Picture = picDown


werkt zondermeer in VB.

[ Voor 8% gewijzigd door farlane op 31-10-2003 12:12 ]

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Verwijderd

Topicstarter
Mja, misschien omdat ik dan met pointer werk... Es sjecke se

*edit*
Nope, deze 3 mogelijkheden werken dus niet:

IPictureDisp
IPictureDisp*
IPictureDisp**

1e wil niet compilen
2e & 3e geven error in VB (die ik hierboven heb vermeld)

[ Voor 61% gewijzigd door Verwijderd op 31-10-2003 12:29 ]


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 18:33
Misschien als StdPicture ? Deze implementeert volgens mij ook IPictureDisp.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Verwijderd

Topicstarter
Ik zit in C++ bezig hé ;)
StdPicture is niet gedefined in IDL ... Of toch niet bij mijn weten...

Wat ik begrepen heb uit wat ik gelezen heb is dat een picture-object verwijst naar een 'IPictureDisp*'-object...

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 18:33
Verwijderd schreef op 31 oktober 2003 @ 15:05:
Ik zit in C++ bezig hé ;)
StdPicture is niet gedefined in IDL ... Of toch niet bij mijn weten...

Wat ik begrepen heb uit wat ik gelezen heb is dat een picture-object verwijst naar een 'IPictureDisp*'-object...
Ze zijn beide gedefinieerd in de stdole lib ( Zo heet ie in eider geval in de VB object browser )

Dus als 'ie IPictureDisp kent, kent ie ook StdPicture.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.

Pagina: 1