PDA

Ver la Versión Completa : Problemas al crear una aplicacion


aip
12-12-2003, 02:28:25
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.

roman
12-12-2003, 02:52:59
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

aip
13-12-2003, 01:01:11
Muchas gracias Roman. Sí funcionó así como me dices
:) :) :)