![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
¿GetFileVersionInfo modifica su primer parámetro? (FileName, la ruta de archivo dada)
Hola, voy a trabajar con la función GetFileVersionInfo de la API de Windows, la cual sirve para obtener datos de un archivo ejecutable, como su versión, fabricante, etcétera.
En la unidad SysUtils de Delphi viene una rutina que hace uso de ella (también he visto varias clases de terceros que la implementan):
Lo que me llama la atención es esa afirmación de "GetFileVersionInfo modifies the filename parameter". Entiendo y encuentro lógico que debido a ello Borland usara una cadena alterna "UniqueString(FileName)". Pero al hacer pruebas no encontré que GetFileVersionInfo realmente modificara el valor del primer argumento. Así que mi duda es por qué se tiene esa precaución y, asumiendo que la afirmación del comentario es cierta, ¿en qué circunstancias ocurre tal modificación? Esta vez no tuve suerte en Google, ¿alguna pista? Gracias de antemano. ![]() |
#2
|
||||
|
||||
Hola,
A ver. Voy a tirar al aire con lo primero (y más simple, porque, de mi cerebro no pueden salir sino cosas simples) que se me ocurre. Digo que acaso el prototipo de dicha función se definió en su día con un argumento "constante". Tiempo después, por el motivo que fuese, se vió que era menester modificar dicho argumento, de manera que no valía que se dejase como constante. Si estoy en lo cierto, tal vez se tomó la solución "chapuza", esto es, utilizar una variable local para hacer las modificaciones correspondientes, manteniendo el prototipo de la función, ¡digo yo!, por razones de compatibilidad... P.D. En efecto, esta explicación mía no puede tener sentido,... ¿verdad que no tiene sentido? Y por diversas razones además, casi estoy por borrar este mensaje... ![]() ![]() |
#3
|
||||
|
||||
Quizá algún "bug" en alguna versión antigua de Windows y el "parche se quedó hasta nuestros dias. En todo caso la ocumentación de la API no dice nada al respecto.
// Saludos |
#4
|
||||
|
||||
Yo uso esa función desde hace muchos años en todos los proyectos y nunca he tenido problemas de ese tipo, (sólo la he usado en winXP con D7 y D2007)
|
#5
|
||||
|
||||
Pero, ¿usas directamente la API de Windows o la función de la unidad SysUtils?
// Saludos |
#6
|
||||
|
||||
O sea, que, mi respuesta mi mirarla siquiera.
![]() ![]() ![]() |
#7
|
||||
|
||||
Cita:
Es la que está implementada en 'windows'; y es este código horroroso:
|
#8
|
||||
|
||||
Cita:
![]() ![]() // Saludos |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Pasar como parametro la ruta de una imagen | richy08 | Impresión | 6 | 19-08-2008 22:56:00 |
llamar un archivo asi '192.168.1.1:\ruta\archivo.frf' | IVAND | Varios | 5 | 12-04-2008 16:18:54 |
Ruta absoluta de un archivo | Alexis De la Cr | PHP | 3 | 17-06-2006 23:41:22 |
ruta de un archivo | ddd_ddd | Varios | 1 | 07-06-2006 23:08:34 |
Ruta y nombre de archivo INI | jfranco | Varios | 2 | 27-02-2004 16:44:23 |
![]() |
|