Estoy usando MFC en mi programa C++ (usando Visual Studio 2008). Debo llamar a AfxGetInstanceHandle() al comienzo de mi programa.AfxGetInstanceHandle() desencadena una falla de aserción
Esta función activa un punto de ruptura:
AFXWIN_INLINE HINSTANCE AFXAPI AfxGetInstanceHandle()
{ ASSERT(afxCurrentInstanceHandle != NULL);
return afxCurrentInstanceHandle; }
La declaración ASSERT falla. Me preguntaba si había algo que hacer para inicializar el afxCurrentInstanceHandle
antes de intentar acceder a él.
PD: Estoy usando MFC en una dll compartida.
EDITAR
Mi código es así:
int _tmain(int argc, _TCHAR* argv[])
{
CoInitialize(NULL);
AfxGetInstanceHandle();
return 0;
}
me gustaría usar el InstanceHandle
con el fin de inicializar un CComModule
y luego usarlo para manipular objetos COM.
Entonces, ¿no hay forma de acceder a AfxGetInstanceHandle() sin tener todo el objeto CWinApp? – Arthur
Creo que estaba haciendo algo mal, y realmente no necesitaba esto para usar el objeto COM. Gracias. – Arthur
Voto abajo porque esto no es verdad. Para las aplicaciones de Windows/GUI su afirmación es correcta, el proyecto wizzard creará una clase derivada de CWinApp. Pero cuando crea una aplicación de consola con soporte MFC, se crea el código fuente con una función principal (_tmain) y se llama primero a AfxWinInit para configurar el MFC. –