Tipo anulable en ATL COM

Estoy trabajando en el acceso a datos en C++ ATL/COM. ¿Cómo se pasa un tipo anulable (por ejemplo, un entero anulable) en una interfaz?

preguntado el 03 de julio de 12 a las 18:07

Parece que necesitamos usar variant_t (stackoverflow.com/questions/1987261/…)... En otras palabras, mi entidad estará llena de variantes... lo cual puede ser un fastidio. ¿Hay una solución mejor? -

1 Respuestas

En ATL/C++ en interfaces (IDL) no tiene clases anulables y soporte en construcciones de lenguaje (<type>? C ª#). Anulable es básicamente el tipo en sí mismo y un extra BOOL indicando si actualmente tenemos NULL o no.

Se puede implementar una clase de plantilla relativamente simple para que se vea, para extenderla, de manera similar a C# Anulable. En la interfaz, serán dos argumentos o, como descubrió, puede usar VARIANT type ya que ya incorpora el valor de la carga útil y .vt miembro que indica el tipo. VT_NULL constante es lo que dice por sí mismo: el valor de toda la variante es nulo.

Respondido 06 Jul 12, 11:07

Estoy accediendo a la base de datos dentro del componente y, por lo tanto, creo que usar variant es probablemente la mejor opción (ya que ADO lo usa). - telemático

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.