Deseo utilizar un dll COM en mi biblioteca C++. La forma Supuse ir sobre él, es import archivo .tlb de la DLL, lo que hice:Cómo usar COM dll en mi programa C++
#import "mycom.tlb" no_namespace
El problema es que no sé muy bien dónde colocar esta declaración. ¿Debería estar dentro del archivo H o del archivo CPP? o tal vez el archivo stdafx.h? Intenté colocarlo en el archivo .cpp, solo para probarlo.
en el archivo H he declarado a este miembro:
ILogicSecuredPtr m_pbLogic;
(donde ILogicSecured es la interfaz que quiero trabajar en mi DLL COM)
Luego añade esta en el constructor para crear una instancia la interfaz:
CoInitialize(NULL);
m_pbLogic(__uuidof(LogicSecured));
(donde LogicSecured es el nombre del objeto que implementa la interfaz)
En el destructor que ha añadido:
CoUninitialize();
Esto no se compilará sin embargo, no importa donde trato de colocar la declaración import. simplemente no reconoce el objeto ILogicSecured. me sale este error en el archivo H:
Error 2 error C2146: syntax error : missing ';' before identifier 'm_pbLogic'
También debo mencionar que cuando F12 (en Visual Studio) en la declaración ILogicSecuredPtr, me lleva al archivo tlh bien. Entonces sé que lo reconoce.
¿Qué estoy haciendo mal aquí?
Muchas gracias. Roey
¿Puedo engrosar un poco la trama? Si trato de agregar el # import en el archivo stdafx.h, el m_pbLogic (__ uuidof (LogicSecured)); parte del código no se compila, diciendo Error 18 error C2064: término no evalúa a una función tomando 1 argumentos – Roey
Correcto - usted intenta llamar al constructor de la variable miembro dentro del cuerpo del constructor - esto no está permitido. Debería usar en su lugar el método CreateInstance() del IWhateverPtr. – sharptooth
Gracias por la respuesta rápida. ¿Podría darme un ejemplo falso de cómo llamar a CreateInstance en mi situación? y dónde colocarlo? Gracias – Roey