Seite 1 von 4

L&L Neueinstieg

Verfasst: Do, 02. Apr 2020 11:23
von Manfred
Hi Leute,
ich versuche jetzt von Anfang an in die Materie einzuarbeiten. leider gibt es wohl etliche Fallstricke.
erster Fallstrick. Der Vortrag von Tom und Joachim Bartlau bringt beim kompilieren folgenden Fehler:
unresolved external symbol
LLDEFINEFIELDEXTW
LLDEFINEVARIABLEEXTW
REMALL

was machen ich falsch?

Re: L&L Neueinstieg

Verfasst: Do, 02. Apr 2020 11:35
von Martin Altmann
War schon mal Thema hier (glaube ich) - da fehlte eine Headerdatei.

Viele Grüße,
Martin

Re: L&L Neueinstieg

Verfasst: Do, 02. Apr 2020 12:10
von HaPe
cmbtLLxx.h einbinden :)

Re: L&L Neueinstieg

Verfasst: Do, 02. Apr 2020 12:31
von Manfred
ok, das reduzierte das Problem.
Jetzt habe ich das nächste.

Code: Alles auswählen

EXTERN CLONG      LlJobOpen(CLONG) CMLL23.DLL FROM "LlJobOpen"
hier gibt es einen Syntax Error in der cmbtl23.h Zeile 1194

Re: L&L Neueinstieg

Verfasst: Do, 02. Apr 2020 16:05
von Marcus Herz
Hi

Ich hatte dir doch schon mal dsListLabel gezeigt. Wird ja auch mit Combit ausgeliefert.
Warum jetzt wieder bei Null anfangen?

Re: L&L Neueinstieg

Verfasst: Do, 02. Apr 2020 16:40
von Tom
Und auch ohne dsList&Label (muss ich mir mal anschauen) geht es viel einfacher mit den fertigen Includes und PRGs, die Combit für Xbase++ mit ausliefert. Wenn man die einbindet, sind alle DLL-Funktionen ordentlich gewrappt, das ganze ist threadsafe (weil ein Jobhandle je Thread abgeholt wird) und man kann jede L&L-Funktion direkt aufrufen. Du bist gerade dabei, ein Rad zu erfinden, Manfred, aber wenn Du hochschaust - da ist ein Griff. Einfach an dem ziehen, einsteigen und losfahren. :wink:

Re: L&L Neueinstieg

Verfasst: Do, 02. Apr 2020 16:47
von Manfred
Sorry,
leider bin ich mit Marcus Idee nicht weiter gekommen. Ich möchte deshalb erstmal die Standardversion probieren.
Aber beide Antworten helfen mir bei meinem Problem nicht weiter. Schade.
welche .h Datei müssen eingebunden werden? Für xbase++ gibt es keine speziellen im Angebot

Re: L&L Neueinstieg

Verfasst: Do, 02. Apr 2020 17:04
von Marcus Herz
Nartülich ch. in deinem Fall cmbtLL23.ch
Ist bei LL Beispielen im Alaska Ordner

Re: L&L Neueinstieg

Verfasst: Do, 02. Apr 2020 17:09
von Manfred
nee Marcus, ich rede von der/einer .h Datei, die HaPe erwähnt hat. Nicht von einer .ch Datei. Wen ich die von dbase3+ nehme, dann wird der erste Fehler zwar nicht mehr angemekcert, aber der 2. den ich weiter oben benenne.

Re: L&L Neueinstieg

Verfasst: Do, 02. Apr 2020 18:16
von ramses
Hallo Manfred

da irrt Ihr euch (du und HaPe) aber mächtig.
Die Datei die mit Xbase++ eingebunden werden muss heisst wirklich "cmbtLL23.ch"
(und es müssen alle Dateien aus den xbase++ Beispielen sein. Keinesfalls die aus C oder dbase etc... oder Mischungen ....)
Wie Marcus schrieb.
Zudem musst du unbedingt aufpassen dass du nur Dateien deiner Version verwendest. Dateien aus einem Vortrag der auf einer anderen L&L Version basiern können wegen z.B. geänderten Calls usw. zu ungeahnten Problemen führen!
Dies gilt auch und besonders für die cmbtLL23.prg

Re: L&L Neueinstieg

Verfasst: Do, 02. Apr 2020 18:32
von Manfred
Sorry Carlo,
aber ich glaube Du irrst Dich hier. Lies bitte den gesamten thread durch hier. Oder aber sage genau was falsch ist. Das was Du anführst ist es jedenfalls nicht.

Re: L&L Neueinstieg

Verfasst: Do, 02. Apr 2020 18:38
von Marcus Herz
Code: Alles auswählen

EXTERN CLONG LlJobOpen(CLONG) CMLL23.DLL FROM "LlJobOpen"
Das ist C++, nicht Xbase ??

Re: L&L Neueinstieg

Verfasst: Do, 02. Apr 2020 18:41
von Manfred
keine Ahnung. Ich habe mir verschiedene Dateien ausgesucht, aber keine klappt. Aber nur mit den cmb*.ch klappt es auch nicht.

Re: L&L Neueinstieg

Verfasst: Do, 02. Apr 2020 18:41
von Marcus Herz
Schau dir wirklich die Combi Xbase Beispiele an:

C:\Program Files (x86)\combit\LL23\Beispiele\Alaska Xbase++\Invoice Example

ist ein Beispiel pur Xbase++, ohne meine Klasse. Da kannst du aufsetzen, schau was und wie gelinkt werden muss

Re: L&L Neueinstieg

Verfasst: Do, 02. Apr 2020 18:43
von Manfred
Marcus,
ich habe alles mögliche versucht, aber nichts klappt. Ich weiß nicht was ich falsch mache. :banghead:
oder andersherum. Die Beispiel klappen nicht. In meine Projekte habe ich alles eingebunden und es klappt ohne zu meckern (compilieren und DLL laden). Aber da fehlen mir die beispiele, wie ich es anpacken muß.

Re: L&L Neueinstieg

Verfasst: Do, 02. Apr 2020 18:45
von Marcus Herz
Wie, die Beispiele klappen nicht?
Welchen Fehler bekommst du denn?

Re: L&L Neueinstieg

Verfasst: Do, 02. Apr 2020 18:48
von Manfred
z.B. oben genannte.
aber, wenn ich das Invoice Beispiel nehme, dann kann ich Open Datasource machen. Es wird in der listbox was angezeigt.
Und dann? Klicke ich auf Design Invoice oder Print Invoice passiert nichts. Ich verstehe nicht was das soll? Muß ich da noch Knöchelchen hochwerfen?

Re: L&L Neueinstieg

Verfasst: Do, 02. Apr 2020 18:50
von Marcus Herz
fällt mir wieder ein, in der 23 Version hat Combit eine falsche Version ausgeliefert. Man kann die tatsächlich nicht kompilieren.
Ich schick dir morgen die Korrektur. Das sind schon mehrere drüber gefallen

Re: L&L Neueinstieg

Verfasst: Do, 02. Apr 2020 18:52
von Manfred
was ist denn daran falsch? ich nutze nicht die DS version von dir.

Re: L&L Neueinstieg

Verfasst: Do, 02. Apr 2020 19:22
von ramses
Manfred hat geschrieben: Do, 02. Apr 2020 18:32 Sorry Carlo,
aber ich glaube Du irrst Dich hier. Lies bitte den gesamten thread durch hier. Oder aber sage genau was falsch ist. Das was Du anführst ist es jedenfalls nicht.
Hallo Marfred

ich habe seit L&L16 jede Version verwendet. Ich habe da so einiges gelernt und kenne so einiges.
Bei dir passen einfach die verwendeten Dateien und Versionen nicht zusammen.
Du wirst es dann schon noch selbst erkennen.....

Re: L&L Neueinstieg

Verfasst: Do, 02. Apr 2020 19:29
von ramses
Ach ja der Fehler

EXTERN CLONG LlJobOpen(CLONG) CMLL23.DLL FROM "LlJobOpen"

kommt wenn du die Headerdatei von dbasePLUS "cmbtLL23.h" einbindest da passt Text und Zeilennummer nur die passt aber nicht zu xbase++

Re: L&L Neueinstieg

Verfasst: Do, 02. Apr 2020 19:35
von Bertram Hansen
Hallo in die Runde,

ich versuche Manfred ein wenig zu helfen und habe mir mal die Sessionunterlagen vom Forentreffen 2015 von Tom und Jochen Bartlau angesehen.
In der Project-Datei wird z.B. die PRG-Datei LLCOMMON.PRG verwendet. Diese ist leider nicht in den Sessionunterlagen 2015, sondern die habe ich in Unterlagen vom Forentreffen 2017 gefunden.

In dieser LLCOMMON.PRG von 2017 werden 3 Funktionen benutzt die unbekannt sind.
LlDefineFieldExtW
LlDefineVariableExtW
und RemAll() beim Return der Funktion MyGetTempPath()
Die beiden Funktionen LlDefineFieldExtW() und LlDefineVariableExtW() werden nur verwendet, wenn die Variable lUnicode den Wert True hat. Damit ich compilieren kann, habe ich diese Stellen auskommentiert.

Dann gibt es in den Sessionunterlagen vom Forentreffen 2015 die PRG-Datei LULDEMO.PRG. In dieser wird in der Funktion LoadInvoice() die Funktion GetDataPath() aufgerufen, die auch unbekannt ist.

In den Original Xbase++ Beispiele z.B. unter c:\Program Files (x86)\combit\LL22\Beispiele\Alaska Xbase++\Invoice Example wird z.B. die Klasse dsListLabel() verwendet. Diese ist aber nicht definiert.

Ich vermute mal, dass die Beispiele auf den jeweiligen Rechner der Sprecher einwandfrei funktioniert haben.

Manfred und ich versuchen uns gerade in List&Label einzuarbeiten und von Grund auf mit purem Xbase++ das Ding zu verstehen.
Darum werden wir in Zukunft bestimmt noch mehr Anfängerfragen stellen. :D

Re: L&L Neueinstieg

Verfasst: Do, 02. Apr 2020 20:20
von ramses
Hallo Bertram

die funktion GetDataPath() ist aber in der LULMENU.PRG ganz unten definiert.

Wenn Ihr euch in L&L einarbeiten wollt kann ich euch nur den Tip geben mit einer sauberen Installation von L&L zu beginnen und alle anderen
prg's verschiedener Herkünfte vorerst weit weg zu stellen.

Denn sonst jagt Ihr Probleme die sonst gar nie aufgetreten wären. ( Wie Manfred der die .h Datei aus dbasePLUS eingebunden hat. s. Beitrag 4)

Das Invoice Example in meiner LL22 Version habe ich soeben überpruft. Die dsListLabel() Klasse ist da auch nicht enthalten.
Es compiliert Fehlerfrei und Funktioniert absolut auch einwandfrei. Zudem ist es auch ein gutes Beispiel sich in L&L einzuarbeiten. Genau mit dem habe ich vor Jahren mit L&L16 auch den Einstieg gemacht.

Re: L&L Neueinstieg

Verfasst: Do, 02. Apr 2020 21:30
von Bertram Hansen
Hallo Carlo,

stimmt die Funktion GetDataPath() ist in der LULMENU.PRG definiert. Das hatte ich übersehen.

Ich habe auch ein wenig den Überblick bei den vielen Beispielen verloren.

Wenn du schon Erfahrungen mit L&L hast, dann kommen wir bestimmt wieder auf dich zurück. :)

Re: L&L Neueinstieg

Verfasst: Fr, 03. Apr 2020 8:22
von ramses
Hallo Bertram

versuchs umgekehrt. NIcht viele Beispiele ansehen sondern stelle dir eine Aufgabe die du mit L&L lösen willst. Dann nimmst du das vom Namen her passendste Beispiel und änderst dies ab bis deine Aufgabe gelöst ist.

Ich gebe dir recht es gibt so viele Möglichkeiten da verlierst du zu beginn leicht die übersicht. Das wird aber besser. Bis jetzt gab es noch nichts was ich mit L&L nicht hätte umsetzten können. L&L ist so was wie eine Eier legende Wollmilchsau (zitat von Tom)

Ihr braucht ein wenig Geduld. Die wichtigste Entscheidung zum Einstieg habt Ihr bereits richtig getroffen: Einstieg ohne die ds Klasse.