Error al importar librería msado15.dll de ADO

0 comentarios

Al programar en Visual C++ 5.0 para un sistema de gestión de bases de datos (database management system, DBMS) relacional pensado para pequeñas aplicaciones de Windows como Microsoft Access 2000, utilizando la interfaz orientada a objetos, ActiveX Data Objects (ADO) para el acceso a la base de datos. Nos encontramos con que tenemos que importar en el fichero de cabecera (.h) correspondiente mediante la directiva #import la dll msado15.dll, pues bien, después de ponernos a tirar código resulta que al compilar nos encontramos con los siguientes errores :

  • ..\Debug\msado15.tlh(403) : warning C4146: unary minus operator applied to unsigned type, result still unsigned
  • ..\Debug\msado15.tlh(1098) : error C2504: 'Connection15' : base class undefined
  • ..\Debug\msado15.tlh(1266) : error C2504: 'Recordset21' : base class undefined
  • ..\Debug\msado15.tlh(1286) : error C2504: 'Recordset20' : base class undefined
  • ..\Debug\msado15.tlh(1320) : error C2504: 'Recordset15' : base class undefined
  • ..\Debug\msado15.tlh(1706) : error C2504: 'Fields20' : base class undefined
  • ..\Debug\msado15.tlh(1740) : error C2504: 'Fields15' : base class undefined
  • ..\Debug\msado15.tlh(1794) : error C2504: 'Field20' : base class undefined
  • ..\Debug/msado15.tli(293) : error C2664: '_com_issue_errorex' : cannot convert parameter 2 from 'struct _Connection *const ' to 'struct IUnknown *'
  • ..\Debug/msado15.tli(481) : error C2664: '_com_issue_errorex' : cannot convert parameter 2 from 'struct _Recordset *const ' to 'struct IUnknown *'
  • ..\Debug/msado15.tli(491) : error C2664: '_com_issue_errorex' : cannot convert parameter 2 from 'struct Recordset21 *const ' to 'struct IUnknown *'
  • etc.

El error está perfectamente documentado en una revisión disponible en el sitio de soporte de Microsoft. El identificador del artículo es 190726 - Última revisión: martes, 18 de noviembre de 2003 - Versión: 2.0 y el título de la revisión: #Import de Visual C++ 5.0 produce errores con ADO versión 2.0 donde se comenta que se produce en los windows 95, 98 y NT, lista a la que añadimos también el 2000. De entre las alternativas ofrecidas, la mejor es sin lugar a dudas la primera, es decir, instalar Visual Studio, Service Pack 3 porque todo se debe a un antiguo problema de la característica #import del compilador que se corrigió en la versión full del correspondiente service pack 3. La obtención de este service pack puede hacerse de varias maneras, siendo la más cómoda acceder al centro de descargas de Microsoft o hacer un ftp a Microsoft, para lo que aconsejo el sitio FileWatcher y bajarse el vssp3 versión full que consta de nueve ficheros (de unos 10 MB cada uno) :

  1. VSSP3_1.EXE
  2. VSSP3_2.CAB
  3. VSSP3_3.CAB
  4. VSSP3_4.CAB
  5. VSSP3_5.CAB
  6. VSSP3_6.CAB
  7. VSSP3_7.CAB
  8. VSSP3_8.CAB
  9. VSSP3_9.CAB

Lo primero una vez hecha la descarga es expandir el service pack ejecutando VSSP3_1.EXE, preferiblemente desde un prompt MS-DOS. Esto creará el directorio vs97_sp3 y ya podremos ejecutar el SETUP.EXE para instalar el service pack que soluciona nuestro problema.

[...]

Manifiesto contra el Anteproyecto de Ley de Economía Sostenible.

0 comentarios


Ante la inclusión en el Anteproyecto de Ley de Economía sostenible de modificaciones legislativas que afectan al libre ejercicio de las libertades de expresión, información y el derecho de acceso a la cultura a través de Internet, los periodistas, bloggers, usuarios, profesionales y creadores de internet manifestamos nuestra firme oposición al proyecto, y declaramos que…


  1. Los derechos de autor no pueden situarse por encima de los derechos fundamentales de los ciudadanos, como el derecho a la privacidad, a la seguridad, a la presunción de inocencia, a la tutela judicial efectiva y a la libertad de expresión.

  2. La suspensión de derechos fundamentales es y debe seguir siendo competencia exclusiva del poder judicial. Ni un cierre sin sentencia. Este anteproyecto, en contra de lo establecido en el artículo 20.5 de la Constitución, pone en manos de un órgano no judicial -un organismo dependiente del ministerio de Cultura-, la potestad de impedir a los ciudadanos españoles el acceso a cualquier página web.

  3. La nueva legislación creará inseguridad jurídica en todo el sector tecnológico español, perjudicando uno de los pocos campos de desarrollo y futuro de nuestra economía, entorpeciendo la creación de empresas, introduciendo trabas a la libre competencia y ralentizando su proyección internacional.

  4. La nueva legislación propuesta amenaza a los nuevos creadores y entorpece la creación cultural. Con Internet y los sucesivos avances tecnológicos se ha democratizado extraordinariamente la creación y emisión de contenidos de todo tipo, que ya no provienen prevalentemente de las industrias culturales tradicionales, sino de multitud de fuentes diferentes.

  5. Los autores, como todos los trabajadores, tienen derecho a vivir de su trabajo con nuevas ideas creativas, modelos de negocio y actividades asociadas a sus creaciones. Intentar sostener con cambios legislativos a una industria obsoleta que no sabe adaptarse a este nuevo entorno no es ni justo ni realista. Si su modelo de negocio se basaba en el control de las copias de las obras y en Internet no es posible sin vulnerar derechos fundamentales, deberían buscar otro modelo.

  6. Consideramos que las industrias culturales necesitan para sobrevivir alternativas modernas, eficaces, creíbles y asequibles y que se adecuen a los nuevos usos sociales, en lugar de limitaciones tan desproporcionadas como ineficaces para el fin que dicen perseguir.

  7. Internet debe funcionar de forma libre y sin interferencias políticas auspiciadas por sectores que pretenden perpetuar obsoletos modelos de negocio e imposibilitar que el saber humano siga siendo libre.

  8. Exigimos que el Gobierno garantice por ley la neutralidad de la Red en España, ante cualquier presión que pueda producirse, como marco para el desarrollo de una economía sostenible y realista de cara al futuro.

  9. Proponemos una verdadera reforma del derecho de propiedad intelectual orientada a su fin: devolver a la sociedad el conocimiento, promover el dominio público y limitar los abusos de las entidades gestoras.

  10. En democracia las leyes y sus modificaciones deben aprobarse tras el oportuno debate público y habiendo consultado previamente a todas las partes implicadas. No es de recibo que se realicen cambios legislativos que afectan a derechos fundamentales en una ley no orgánica y que versa sobre otra materia.

Este manifiesto, elaborado de forma conjunta por varios autores, es de todos y de ninguno. Si quieres sumarte a él, difúndelo por Internet.

[...]

Problema con el ordinal 5084 en MFC42D.dll

0 comentarios

Ayer empezamos un nuevo desarrollo con el viejo IDE Microsoft Developer Studio 97 en Visual C++ 5.0 y tras generar un MFC AppWizard[exe] y compilar en modo Win32 Debug nos apareció la siguiente ventana al ir a ejecutar:
"No se ha podido localizar el ordinal 5084 en la biblioteca de vínculo dinámico MFC42D.dll".
Después de buscar en diferentes sitios, blogs, foros, manuales, soporte de Microsoft, etc. no encontramos nada que solucionase el problema. En general se insiste en sustituir la librería MFC42D.dll por otra con una versión diferente, en unos casos se recomienda sustituir la v4.21.7022 por una superior como la 6.0.8168, la 6.00.8665, etc. o al revés, otras veces el consejo es bajar de versión. La solución que ha funcionado ha sido desinstalar el IDE y volverlo a instalar: sencillo y efectivo. Ahora el debugger y la ejecución en modo debug van como la seda.

Un saludo

[...]

La IX semana de la Ciencia, en Madrid.

0 comentarios

El pasado lunes, día de "La Almudena" (patrona de Madrid), comenzó la "IX semana de la Ciencia". En realidad, son dos semanas (desde el 9 hasta el 22 de noviembre) de actividades divulgativas de lo más variadas. Recomendable para todo el que pueda acudir a alguna de las muchas actividades programadas. Más información en este link.

Un saludo

[...]

Biografía de Hipatia de Alejandría

0 comentarios



La cartelera cinematográfica nos recuerda estos días la vida de Hipatia, considerada la primera matemática y astrónoma de la historia. En el cine y en las novelas es normal tomarse licencias históricas, así que nos centraremos en lo poco que se sabe sobre esta sabia de la antigüedad de la que sólo se conservan referencias ya que no se ha conservado ningún trabajo suyo.
Aunque hay dudas sobre el año concreto debió nacer el 355, en Alejandría. Esta ciudad entonces era una de las más importantes del Imperio romano en África, tanto a nivel comercial como cultural porque allí se había cultivado la ciencia y la filosofía casi desde su fundación por los griegos en el año 332 a. C. y porque era el puerto por el que salía buena parte de la produción agrícola egipcia con destino a Roma y a otros lugares del Imperio.
Hipatia era la hija de Teón de Alejandría, importante astrónomo y matemático. Miembro del Museo de Alejandría y famoso por sus comentarios al Almagesto de Claudio Ptolomeo, a los Elementos y a la Óptica de Euclides, entre otros trabajos.
Algunos de los comentarios son una forma de hacerse entender por su alumnado que al parecer tenía un nivel muy bajo en matemáticas, en una época de clara decadencia cultural. Teón formó a su hija en matemáticas y astronomía, la cual, a su vez le ayudó en algunos de sus comentarios. Hipatia además se interesó por la filosofía y viajó a Roma y a Atenas para mejorar sus conocimientos convirtiéndose en una extraordinaria profesora de filosofía. Se convirtió en el principal referente de la escuela neoplatonica de Alejandría a donde acudían a formarse alumnos de todo el Imperio. Ella era pagana y en una época de grandes altercados religiosos acabó enfrentada con Cirilo, patriarca de Alejandría quien azuzó a unos fanáticos que la mataron. Se ve que no habían entendido muy bien el mensaje de Jesús.

Gracias a algunos discípulos sabemos que sus principales contribuciones a la ciencia fueron sus comentarios a la Aritmética de Diofanto y sus comentarios a las Secciones cónicas de Apolónio de Perga además de varios trabajos sobre astronomía.

[...]

La conjetura de Goldbach y un problema imposible.

0 comentarios



En matemáticas hay muchas conjeturas, de todas ellas la más famosa es la de Goldbach. Apareció mencionada por primera vez en una carta de Christian Goldbach a Leonhard Euler en 1742. En ella el matemático prusiano (1690-1764) le plantea la conjetura a su colega suizo:

"Cualquier número par mayor que dos es la suma de dos números primos"

La conjetura ha sido verificada hasta números enormes, pero aún no se ha encontrado ningún argumento matemático que demuestre que es cierta para todo número par.

Tenemos que recordar esta conjetura para poder resolver el llamado "problema imposible", que aparece en uno de los muchos artículos que publicó Martin Gardner en la columna juegos matemáticos de la revista de divulgación "Scientific American". El problema se plantea así:

«Se eligen dos números, no necesariamente distintos, en el conjunto de números enteros positivos mayores que 1 y no mayores que 20. Al matemático S se le da solamente la suma de estos números. Y al matemático P se le hace saber solamente su producto.

Por teléfono, S le dice a P: “No veo cómo vas a poder averiguar mi suma”. Una hora más tarde, P devuelve la llamada a S y le comunica “Ya sé cuánto vale tu suma”. Más tarde, S llama otra vez a P y le informa “Ahora ya conozco tu producto”.

¿De qué números se trata?»

La solución la mostraré un día de estos.

Un saludo

[...]

Curso de Modula-2.Variables y constantes (II)

0 comentarios


Conceptos básicos

Para empezar lo mejor es consultar el diccionario de la lengua de la Real Academia Española, porque si acudimos a fuentes poco consistentes seguiremos sin aclararnos.

La informática es el conjunto de conocimientos científicos y técnicas que hacen posible el tratamiento automático de la información por medio de ordenadores. Este neologismo fue acuñado en 1962 por el profesor de informática, empresario y físico judeofrancés Philippe Dreyfus que se convirtió en uno de los mayores informáticos del país vecino.

La información es la acción y efecto de informar; es decir, de enterar, dar noticia de algo.

¿Qué significa noticia? Es una noción, un conocimiento o idea que se tiene de algo, y el conocimiento es a su vez la acción y el efecto de conocer; es decir, averiguar por el ejercicio de las facultades intelectuales la naturaleza, cualidades y relaciones de las cosas.

Otra palabra a introducir es comunicar. Tiene muchas acepciones, siendo las principales:

- hacer a otro partícipe de lo que uno tiene

- descubrir, manifestar o hacer saber a alguien

- etc.

Por último, los atributos son cada una de las cualidades o propiedades de un ser.

Variables y constantes

En informática a las unidades o elementos de información se les llama datos, en plural. Para el singular se prefiere el término ítem. Pues bien, los datos se corresponden con los valores que a su vez pueden ser numéricos (enteros, reales, ...) o alfanuméricos (caracteres, cadenas, ...). No debemos confundir el concepto de variable en matemáticas con el de informática porque no coinciden. En informática una variable es una zona modificable de la memoria del ordenador, cuando no es modificable se le llama constante.

Para cada atributo hay asociado un conjunto de valores o dominio, que especifica el conjunto de valores que puede asignarse a cada variable asociada. Debido a esto es por lo que para cada tipo de dato tenemos un tipo de variable. El tipo limita los valores que una variable puede contener, y también limita las operaciones soportadas sobre esos valores.

En modula-2 los programas comienzan con una cabecera MODULE y continuan con una lista de IMPORT (sobre lo que hablaremos en otro capítulo). Tras la lista viene la declaración de variables y constantes. Se escribe la palabra reservada VAR y se empieza a escribir los nombres de las variables seguidos del tipo. Por ej.:

VAR Edad : INTEGER;

Los tipos predefinidos en modula-2 son INTEGER, CARDINAL, REAL, BOOLEAN y CHAR.

Las variables INTEGER pueden contener números enteros.

Las variables CARDINAL pueden contener números naturales y el cero.

Las variables REAL pueden contener números racionales.

Las variables BOOLEAN pueden contener dos valores: TRUE y FALSE.

Las variables CHAR pueden contener valores alfabéticos o equivalentes.

Cada tipo de variable tiene asociadas una serie de operaciones. Por ejemplo, para las INTEGER tenemos la suma +, la resta -, la multiplicación *, el incremento INC, etc. pero estas operaciones las trataremos en el siguiente capítulo.

Las constantes se declaran mediante la palabra reservada CONST, por ejemplo,

CONST e = 2.71828182;

[...]

Barra de vídeos

Loading...