![]() |
Problemas al crear una aplicacion
Tengo el código siguiente:
function muestraAAgricola(aHandle:THandle;opcion:integer):boolean;stdCall; var resultado:boolean; begin resultado := true; Application.Handle := aHandle; try try DMBDSiap := TDMBDSiap.Create(Application); // Aquí marca el error FrmAAgricola := TFrmAAgricola.Create(Application); FrmAAgricola.tomaOpcionAnuario(TAnuario(opcion)); DMBDSiap.conectaABDAAgricola(TAnuario(opcion)); FrmAAgricola.ShowModal; except showMessage('Hay errores para abrir el módulo'); end; finally DMBDSiap.Free; FrmAAgricola.Free; end; result := resultado; end; En la línea donde está comentario marca el siguiente error: Debugger Exception Notification Project dprAAgricola.exe raised exception class EOleSysError with message ‘No se ha llamado a CoInitialize. Process stopped. Use Step or Run to continue. Mi pregunta es ¿Qué pasa? Creo las aplicaciones de esta forma y no de la siguiente manera: Application.createForm(TDMBDSiap,DMBDSiap) porque según el libro de Teixeira es mejor el que uso que el que crea delphi por default cuando trabajo con DLL's. |
CoInitialize es necesaria para cualquier cosa que use COM y normalmente Delphi se encarga de llamarla. Quizá por la forma en que construyes el objeto Delphi no ha llamado a la función. Puedes hacerlo tú mismo:
CoInitialize(nil) Debes incluir la unidad ActiveX. // Saludos |
Muchas gracias Roman. Sí funcionó así como me dices
:) :) :) |
La franja horaria es GMT +2. Ahora son las 00:39:18. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi