Ver Mensaje Individual
  #3  
Antiguo 11-11-2010
mamaro mamaro is offline
Miembro
 
Registrado: mar 2004
Posts: 79
Reputación: 21
mamaro Va por buen camino
Bueno he estado probando muchas cosas, revisando el código, leyendo bastante literatura, etc .... y llegué a que la parte problemática es la linea que se señala (TAlmacén es un módulo de datos común y corriente donde creo las conexiones ADO):

Código Delphi [-]
function Requiero(Pedido:PChar):PChar stdcall; export;
var Contenido : TContenido;
    Almacen : TAlmacen;
    respuesta : string;
begin
  Contenido := TContenido.Create;
  Almacen := TAlmacen.Create(nil); //<<== Linea problemática
  try
....

... yo la explicación que le encontré fue la siguiente (y me gustaría que alguien con mas experiencia me corrija si me equivoco):
- Una DLL no funciona de la misma forma dentro de un "EXE" que dentro de otra "DLL" (al fin y al cabo un módulo web es una DLL). En el primer caso el espacio de direcciones de la DLL es incluido dentro del espacio de direcciones del ejecutable, en el segundo caso cada DLL tiene un espacio de direcciones individual. Por lo anterior es que se me ocurre que se produce un error al intentar accesar a un posición de memoria de la otra DLL, por lo que pude ver la posible solución es implementar archivos proyectados en memoria ... pero por ahí me quedé.

Visto que tengo un cierto apuro en solucionar esto (porque tengo que entregárselo a un cliente) opté por incluir el código (las unidades de la DLL) dentro del módulo web ... pero para mi sorpresa ahora me da este otro error



... cuando me saltó esto decidí tomar distancia por un día o dos para despejar la cabeza
Responder Con Cita