Habia una vez…

Habia una vez un pagina donde se podia consultar información a detalle de la programación de systema de Windows, con ejemplos de código fuente en C++ y explicaciones detalladas del comportamiento interno de Windows.

Con cierta tristeza me di cuenta al busca información sobre como borrar archivos que se niegan a morir que el hermano puertas se los comio. Microsoft se hizo en julio de 2006 con Winternals, propiedad de Mark Russinovich. Ahora son un repositorio de utilerias tipo powertoys en la sección Windows Sysinternals de Microsoft TechNet.

Al darme cuenta del deceso, busque en mi disco duro los fuentes que alguna vez baje del sitio pero que nunca habia compilado. Así­ que use AccessEnum, una de las utilerias, esocgida por orden alfabetico, para experimentar con el porte de proyectos de VS 2003 a VS2005.

Al abrir el proyecto, corre automaticamente un asistente de actualización. Al compilar el proyecto se generaron solo 4 tipos de errores:

  • Warnings de funciones obsoletas pero que todavía son compiladas correctamente.
  • Variables indefinidas por diferencias en las reglas de alcance de variables. VS2005 es más estricto.
  • duplicate resource. type:MANIFEST. Corregido borrando el archivo de manifiesto y editando el archivo .rc para comentar la linea donde se llama al archivo .manifest
  • cannot convert from ‘const wchar_t *’ to ‘TCHAR. Corregido con un casting

Otros problemas que se pueden presentar:   

Cambio en VS 2005

Como resolverlo

Versiones diferentes de las libreras C runtime

VS 2005 usa DLLs

release configuration

/MD, Multithread DLL

debug configuration

/MDd, Debug Multithread DLL.

Si se prefiere static linking (VS2003 default),

Properties | Configuration | C/C++ | Code Generation | Runtime Library.

 

Release: Change /MD to /MT, Multithreaded.
Debug: Change /MDd to /MTd, Debug Multithreaded.

Librerias de 2005 no se ligan con código 2003.C/C++ libraries built with VS 2005 will not link with code built in VS 2003.

Reconstruir código en VS 2005.

Llamadas a libreria obsoletas. Se marcan  Warnings pero siguen funcionando.

Las nuevas rutinas se llaman igual pero agragan _s al final del nombre y los parametros son distintos.

Enlace | Windows Sysinternals
Enlace | Blog de Sysinternals
Enlace | Forums de Sysinternals

http://www.tc.cornell.edu/SoftwarePages/Migrating+to+Visual+Studio+2005+from+Visual+Studio+.NET+2003.htm

http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1567326&SiteID=1

http://www.codeguru.com/cpp/controls/listview/advanced/comments.php/c4179/?thread=10375

http://www.nirsoft.net/utils/index.html


No Responses to “Habia una vez…”  

  1. No Comments

Leave a Reply

You must log in to post a comment.