2008-11-18 6 views
7

Ich schreibe ein COM-Objekt in C++ mit ATL und bin nicht sicher, ob ich VARIANT_BOOL für meine Methoden/Eigenschaften verwenden soll oder nicht. Das Objekt wird von anderen C++ - Anwendungen aufgerufen, aber ich kann die Verwendung von .NET nicht ausschließen.VARIANT_BOOL vs. BOOL

Ich kann an gute alte BOOL (die IIRC ist einfach ein unsigned int) aber wie VARIANT_BOOL ist da, sollte ich nicht es verwenden? Wenn ich es benutze und diese Methoden von einer C++ App aus aufrufen, muss ich zusätzlichen Code hinzufügen, da VARIANT_BOOL nicht wie ein 'normaler' boolescher Wert ist und ich nach VARIANT_TRUE und VARIANT_FALSE Werten suchen muss.

Ist VARIANT_BOOL ein Anachronismus, den ich vergessen kann oder sollte ich dabei bleiben?

+0

+1 Aruls Antwort. Aber, kurz, ja, benutze VARIANT_BOOL. –

Antwort

2

VARIANT_BOOL wird Ihre COM-Komponente VB6 freundlich machen. COM schien nie wirklich dafür geschaffen zu sein, Dinge einfach in C++ zu tun, sondern mehr darauf, die Verwendung von VB einfach zu machen. Nicht sicher, ob dies immer noch für den .net-Zugriff einer COM-Komponente gilt oder nicht.