11 Voto

Delphi/Lazarus: Diferencia entre ParamStr(0) y Application.ExeName

Pregunta de Compi | 11/01/2024 a las 16:43

No hace mucho, pregunté cómo determinar la carpeta de la aplicación o la ruta a la propia aplicación respectivamente cómo obtener el nombre del archivo EXE de la propia aplicación.

Ambos se pueden resolver usando Application.ExeName y Paramstr(0).

Hasta donde tengo entendido, ParamStr(0) y Application.ExeName parecen ser iguales. ¿Pero dónde está la diferencia? ¿Y por qué necesitamos dos funciones que hagan lo mismo?

¿Y cuál de esas funciones debería usar mejor? ¿Hay ventajas o desventajas a favor de uno u otro?

ResponderPositivoNegativo
2Mejor Respuesta2 Votos

De hecho, ambas funciones son idénticas. Application.ExeName incluso llama a ParamStr(0) internamente (al menos esto se aplica a aplicaciones de Windows o Linux, Lazarus en Darwin hace un poco más).

Para Application.ExeName, debe agregar la unidad Forms para que funcione; para ParamStr(0), solo necesita la unidad System. Por lo tanto, si debe crear una aplicación sin formularios (sin interfaz gráfica de usuario / GUI), será mejor que utilice ParamStr(0) en lugar de incluir la unidad Forms solo para esa única función.

Si ya tiene incluida la unidad Forms, para Windows o Linux da igual. Sin embargo, en este caso se ahorra una llamada de función adicional si utiliza ParamStr(0). En MacOS, prefiero utilizar Application.ExeName si necesita algo del código adicional.

En caso de duda, recomendaría tomar ParamStr(0) para esa tarea.
11/01/2024 a las 20:37

ResponderPositivo Negativo
Responder

Temas Relacionados

Aviso Importante

Por favor tenga en cuenta: Las contribuciones publicadas en askingbox.com son contribuciones de los usuarios y no deben reemplazar el asesoramiento profesional. No son verificados por independientes y no reflejan necesariamente la opinión de askingbox.com. Aprende más.

Participar

Haga su propia pregunta o escriba su propio artículo en askingbox.com. He aquí cómo.