Estimado YAcosta
Algunos tip:
1.- Revisar la lista de compatibilidad que Microsoft ha publicado para Visual Basic
2.- No todas las librerías (DLL, TLB) y componentes (OCX) deben de ser redistribuidas, pues de hacerlo puedes dañar al sistema operativo anfitrión.
3.- Revisar la documentación de las DLL en MSDN
Dicho esto tratare de dar luz para tus ojos
Si quieres desarrollar para múltiples versiones de sistemas operativos, debes de desarrolla en el sistema operativo de menor versión, ya que si desarrollas por ejemplo sobre Windows 8.1 y tu compilado lo quieres ejecutar en Windows XP o Windows 7 hay la posibilidad que estés realizando alguna invocación a una función y/o método de alguna DLL que no existe en una versión de sistema operativo menor, a pesar de que la DLL (por ejemplo) sea la misma. También ocurre que desarrollado en una versión de sistema operativo inferior, al pasar a una versión de sistema operativo superior la invocación a la función y/o métodos de la DLL estén caducadas o por caducar. Siempre es bueno revisar la documentación de las DLL en MSDN.
No siempre ocurre, pero se dan los casos y luego vas a estar loco parchando. En aquellos casos que lo requieras tendrás que colocar dentro de tu código primero la detección de versión de sistema operativo para en rutar a usar código desarrollado específicamente a la versión del sistema operativo. Dicho código particular para cada versión de sistema operativo, podría residir dentro de una DLL específica para cada una de las versiones de sistema operativo.
De esto se concluye que si no quieres complicarte la vida codificando, debes de acotar la compatibilidad de sistema operativo.
Leandro, prueba distribuir usando Inno Setup 5.5.9
Source: Ruta en tu PC\MSCOMCTL.OCX; DestDir: {sys}; Flags: regserver restartreplace sharedfile uninsneveruninstall;
Saludos, desde algún lugar de Lima-Perú