[VC++/VB] DLL met Description maken in VC++

Pagina: 1
Acties:

  • jan-marten
  • Registratie: September 2000
  • Laatst online: 16-05 13:55
Visual Basic heeft de mogelijkheid om bij functies en subs een stukje commentaar te geven in de vorm van een description.

Druk in VB eens op F2 (Object Browser) en klik een standaard functie aan en je ziet iets wat hierop lijkt:

Afbeeldingslocatie: http://home.wanadoo.nl/janmarten/images/VB_description.JPG

Ok, allemaal leuk en aardig. Maar nu wil ik de bijbehorende class in VC++ schrijven maar wil ik tegelijkertijd die descriptions ook toevoegen. Dit lukt mij tot op heden niet. Het lijkt mij dat die description in VC++ gemaakt/geschreven moet worden aangezien het niet in VB wil.

Noot, VB zet in de source van de bestanden de volgende regel:
Attribute saveData.VB_Description = "Description kun je hier dus invullen..."
Zoeken met google op Attribute saveData.VB_Description geeft niet zoveel resultaat :/

Iemand een suggestie?

  • MrBucket
  • Registratie: Juli 2003
  • Laatst online: 29-10-2022
De dingen die je in VB als 'object' gebruikt zijn in VC++ termen "Automation objects", d.w.z COM-objecten die de IDispatch-interface implementeren. Ik zag op je screenshot ook een "Help Context ID"-veld staan, en die maken idd ook deel uit van Automation. Wat dan precies dat comment-veld zou moeten zijn weet ik zo gauw niet, maar ik denk dat als je eens een kijkje neemt naar IDispatch en ITypeInfo, dat je al een heel end moet komen.

Allerhande informatie over automation e.d. kan je hier vinden:
http://msdn.microsoft.com...utomat/htm/chap5_5t9v.asp

Dispatch-objecten vanaf scratch implementeren zou ik je niet aanraden, ik zou zeggen: kijk eens naar de Active Template Library (ATL).

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 17-05 17:19
Die description kan je in je idl file ploffen

Zie ook
http://msdn.microsoft.com...ml/vcrefidlattributes.asp

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.


  • jan-marten
  • Registratie: September 2000
  • Laatst online: 16-05 13:55
Zo, ik heb het gevonden.

In de .odl van het project vind je ergens interfaces terug van de functies/methodes. Dat ziet er in eerste instantie zo uit:
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    [ uuid(F1B9C134-DD07-40EB-B670-A0D8CA716729) ]
    dispinterface ITest
    {
        properties:
            // NOTE - ClassWizard will maintain property information here.
            //    Use extreme caution when editing this section.
            //{{AFX_ODL_PROP(CTest)
            //}}AFX_ODL_PROP
        methods:
            // NOTE - ClassWizard will maintain method information here.
            //    Use extreme caution when editing this section.
            //{{AFX_ODL_METHOD(CTest)
            [id(1)] BSTR HelloWorld();
            //}}AFX_ODL_METHOD
    };

En dan kun je (handmatig) de volgende routine invoeren/aanpassen:
[id(1), helpstring("Hello World example")] BSTR HelloWorld();

Waarna de string "Hello World example" te zien is als VB_description.

Meer hierover: helpstring en voorbeeld .