22 Voix

Lazarus: Programme sans GUI - Beaucoup d'erreurs WSRegister

Question de Invité | 23/03/2022 à 17:39

Pour le moment, j'essaie de coder un programme sans interface graphique ou form (Command Line Tool, outil de ligne de commande) qui devrait néanmoins pouvoir utiliser certaines des fonctions LCL.

Pour cela, j'ai ajouté "LCL" comme exigence par menu "Project > Project Inspector > New Requirement" après avoir créé un "Simple Program"  à Lazarus.

Malheureusement, lorsque vous essayez de compiler mon application vierge, j'ai rencontré les erreurs suivantes:

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

Comment puis-je faire fonctionner mon programme?

RépondrePositifNégatifDateVoix
2Meilleure Réponse2 Voix

Vous devez ajouter "Interfaces" à la section USES  de votre programme principal (l'unité commençant par "program"):

uses Interfaces;

Ensuite, cela devrait fonctionner (avec el LCL inclus pour que les messages d'erreur disparaissent).

Sinon, je peux recommander de supprimer l'exigence LCL et de prendre la LCLBase à la place. Habituellement, la LCLBase doit contenir toutes les choses dont vous avez besoin pour votre application de ligne de commande (gestion de fichiers, LCLIntf, LCLProc etc), mais rien de tel que des formulaires et des dialogues que vous n'avez pas besoin dans la plupart des cas. Avec cela, vous pouvez également supprimer radicalement la taille du fichier de votre programme lorsque vous n'avez plus ce "fardeau" dans votre application.
24/03/2022 à 16:24

RépondrePositif Négatif
00 Voix

Merci!

J'ai eu le même problème et j'appliquais ce que vous avez suggéré fonctionnait parfaitement. J'ai commencé à utiliser Lazarus plusieurs fois comme une alternative à Delphi, voyons si cette fois, je peux m'y habituer.
31/03/2022 à 19:20

Positif Négatif
Répondre
Répondre

Sujets Connexes

La Recherche Askingbox

Info | 0 Commentaires

Avis Important

Veuillez noter: Les contributions publiées sur askingbox.com sont des contributions d’utilisateurs et ne doivent pas remplacer les conseils d’un professionnel. Ils ne sont pas vérifiés par des indépendants et ne reflètent pas nécessairement l’opinion de askingbox.com. Apprendre encore plus.

Participer

Posez votre propre question ou écrivez votre propre article sur askingbox.com. Voici comment.