22 Votos

Lazarus: Programa sin GUI - Muchos errores de WSRegister

Pregunta de Invitado | 22/03/2022 a las 20:32

En este momento, estoy tratando de codificar un programa sin GUI o Form (Command Line Tool, herramienta de línea de comandos) que, sin embargo, debería poder usar algunas de las funciones de LCL.

Para esto, he agregado "LCL" como requisito a través del menú "Project > Project Inspector > New Requirement"  después de haber creado un "Simple Program"  en Lazarus.

Desafortunadamente, al intentar compilar mi aplicación en blanco, me encontré con los siguientes errores:

project1.lpr(11,1) Error: Undefined symbol: WSRegisterCustomImageList
project1.lpr(11,1) Error: Undefined symbol: WSRegisterMenuItem
project1.lpr(11,1) Error: Undefined symbol: WSRegisterMenu
project1.lpr(11,1) Error: Undefined symbol: WSRegisterMainMenu
project1.lpr(11,1) Error: Undefined symbol: WSRegisterPopupMenu
project1.lpr(11,1) Error: Undefined symbol: WSRegisterDragImageList
project1.lpr(11,1) Error: Undefined symbol: WSRegisterLazAccessibleObject
project1.lpr(11,1) Error: Undefined symbol: WSRegisterControl
project1.lpr(11,1) Error: Undefined symbol: WSRegisterWinControl
project1.lpr(11,1) Error: Undefined symbol: WSRegisterGraphicControl
project1.lpr(11,1) Error: Undefined symbol: WSRegisterCustomControl
project1.lpr(11,1) Error: Undefined symbol: WSRegisterScrollingWinControl
project1.lpr(11,1) Error: Undefined symbol: WSRegisterScrollBox
project1.lpr(11,1) Error: Undefined symbol: WSRegisterCustomFrame
project1.lpr(11,1) Error: Undefined symbol: WSRegisterCustomForm
project1.lpr(11,1) Error: Undefined symbol: WSRegisterHintWindow
project1.lpr(11,1) Error: Undefined symbol: WSRegisterCustomScrollBar
project1.lpr(11,1) Error: Undefined symbol: WSRegisterCustomGroupBox
project1.lpr(11,1) Error: Undefined symbol: WSRegisterCustomComboBox
project1.lpr(11,1) Error: Undefined symbol: WSRegisterCustomListBox
project1.lpr(11,1) Error: Undefined symbol: WSRegisterCustomEdit
project1.lpr(11,1) Error: Undefined symbol: WSRegisterCustomMemo
project1.lpr(11,1) Error: Undefined symbol: WSRegisterButtonControl
project1.lpr(11,1) Error: Undefined symbol: WSRegisterCustomButton
project1.lpr(11,1) Error: Undefined symbol: WSRegisterCustomCheckBox
project1.lpr(11,1) Error: Undefined symbol: WSRegisterToggleBox
project1.lpr(11,1) Error: Undefined symbol: WSRegisterRadioButton
project1.lpr(11,1) Error: Undefined symbol: WSRegisterCustomStaticText
project1.lpr(11,1) Error: Undefined symbol: WSRegisterCustomLabel
project1.lpr(11,1) Error: Undefined symbol: WSRegisterCustomBitBtn
project1.lpr(11,1) Error: Undefined symbol: WSRegisterCustomSpeedButton
project1.lpr(11,1) Error: Undefined symbol: WSRegisterShape
project1.lpr(11,1) Error: Undefined symbol: WSRegisterCustomSplitter
project1.lpr(11,1) Error: Undefined symbol: WSRegisterPaintBox
project1.lpr(11,1) Error: Undefined symbol: WSRegisterCustomImage
project1.lpr(11,1) Error: Undefined symbol: WSRegisterBevel
project1.lpr(11,1) Error: Undefined symbol: WSRegisterCustomRadioGroup
project1.lpr(11,1) Error: Undefined symbol: WSRegisterCustomCheckGroup
project1.lpr(11,1) Error: Undefined symbol: WSRegisterCustomLabeledEdit
project1.lpr(11,1) Error: Undefined symbol: WSRegisterCustomPanel
project1.lpr(11,1) Error: Undefined symbol: WSRegisterCustomTrayIcon
project1.lpr(11,1) Error: Undefined symbol: WSRegisterCommonDialog
project1.lpr(11,1) Error: Undefined symbol: WSRegisterFileDialog
project1.lpr(11,1) Error: Undefined symbol: WSRegisterOpenDialog
project1.lpr(11,1) Error: Undefined symbol: WSRegisterSaveDialog
project1.lpr(11,1) Error: Undefined symbol: WSRegisterSelectDirectoryDialog
project1.lpr(11,1) Error: Undefined symbol: WSRegisterColorDialog
project1.lpr(11,1) Error: Undefined symbol: WSRegisterColorButton
project1.lpr(11,1) Error: Undefined symbol: WSRegisterFontDialog
project1.lpr(11,1) Fatal: There were 49 errors compiling module, stopping

¿Cómo puedo hacer que mi programa funcione?

ResponderPositivoNegativoFechaVotos
2Mejor Respuesta2 Votos

Debe agregar "Interfaces" a la sección USES  de su programa principal (la unidad que comienza con "program"):

uses Interfaces;

Luego debería funcionar (con la LCL incluida para que los mensajes de error desaparezcan).

Alternativamente, puedo recomendar para eliminar el requisito de LCL y tomar el LCLBase en su lugar. Por lo general, la LCLBase debe contener todas las cosas que necesita para su aplicación de línea de comandos (administración de archivos, LCLIntf, LCLProc etc), pero nada como formas y diálogos que no necesita en la mayoría de los casos. Con esto, también puede eliminar radicalmente el tamaño del archivo de su programa cuando ya no tiene esta "carga" en su aplicación.
23/03/2022 a las 14:05

ResponderPositivo Negativo
00 Votos

¡Gracias!

Tuve el mismo problema y aplicando lo que sugeriste funcionó perfectamente. Empecé a usar Lazarus varias veces como una alternativa a Delphi, veamos si esta vez puedo acostumbrarme.
31/03/2022 a las 18:55

Positivo Negativo
Responder
Responder

Temas Relacionados

MySQL: Saltos de Línea en MySQL

Consejo | 0 Comentarios

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.