Das Forentreffen 2018 findet am 20./21. April in Dresden statt. Weitere Infos hier
Zur Homepage des Deutschsprachige Xbase-Entwickler e. V.
Xbase++-Wiki des Deutschsprachige Xbase-Entwickler e. V.

FPQCALL - Function is not declared [ERLEDIGT]

Hier können die Unterschiede, Fehler und Probleme zwischen den Versionen bzw. bei der Migration besprochen werden

Moderator: Moderatoren

Antworten
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1910
Registriert: Fr, 08. Feb 2008 22:29

FPQCALL - Function is not declared [ERLEDIGT]

Beitrag von georg » Do, 10. Aug 2017 14:27

Hallo,


da ich gerade ein wenig Zeit habe, experimentiere ich mal wieder mit der 2.0 Build 817.

In Bearbeitung habe ich ein grösseres Programm, das nur Teile (DLLs) verwendet, die mir auch im Xbase++-Sourcecode vorliegen, sowie die OT4XB.

Genau da hakt es. In einer DLL wird diese Anweisung (aus der .ppo-Datei) ausgeführt:

Code: Alles auswählen

function mysql_init(  pMysql  ) ;local _fp_ := nGetProcAddress( "libmysql" , iif(.F.,,"mysql_init") )   ;return ( NIL , FpQCall( _fp_ ,"__pt" +  "__pt"  ,@ pMysql ) )
Klar, die DLL enthält ein

Code: Alles auswählen

#PRAGMA Library("ot4xb.lib")
Und in dem Programm, das diese DLL verwendet, ist auch ein entsprechendes #PRAGMA drin. Und ein

Code: Alles auswählen

REQUEST fpqcall
Nützt alles nichts. Wenn ich das Programm mittels xppdbg starte und über das Command Interface "fpqcall()" eingebe, kommt als Ergebnis NIL. (Klar, keine Parameter etc. - aber kein Hinweis, dass die Funktion nicht verfügbar sei.)

Im Einsatz habe ich die aktuelle Version, die Pablo bereithält. Ich habe auch kontrolliert, dass keine älteren Versionen, Include-Dateien etc. vorhanden sind.

Also gehe ich erst einmal zurück zur 355, in der Hoffnung, dass einer von Euch eine bessere Idee hat.
Liebe Grüsse aus der Eifel,

Georg

ramses
1000 working lines a day
1000 working lines a day
Beiträge: 669
Registriert: Mi, 28. Jul 2010 17:16

Re: FPQCALL - Function is not declared

Beitrag von ramses » Fr, 11. Aug 2017 7:23

Hallo Georg

wie sieht den der Source-Code der Funktion aus?

Ein Return mit 2 Parameter finde ich komisch. Wird FpQCall deshalb gar nicht eingebunden?

Gruss Carlo

georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1910
Registriert: Fr, 08. Feb 2008 22:29

Re: FPQCALL - Function is not declared

Beitrag von georg » Fr, 11. Aug 2017 8:33

Hallo, Carlo -


der Source-Code sieht so aus:

Code: Alles auswählen

DLL libmysql IMPORT mysql_init AS POINTER32 ;
             PARAM  pMysql  AS POINTER32
Daher habe ich das Ergebnis des Precompilers gepostet. Der ppo-Code sieht unter der 355 identisch aus. Und es ist ja auch nicht der Compiler, der rumjammert, sondern erst die Laufzeitumgebung, die nicht in der Lage ist, fpqCall zu lokalisieren.
Liebe Grüsse aus der Eifel,

Georg

georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1910
Registriert: Fr, 08. Feb 2008 22:29

Re: FPQCALL - Function is not declared

Beitrag von georg » Fr, 11. Aug 2017 10:35

So, ich muss vermelden: "Error in front of device"

Die MySQL-API libmysql.dll fehlte. Das führte zu der Fehlermeldung, dass die Funktion nicht gefunden wurde. Der Verweis auf fpqcall() bezog sich auf die Funktion, in der ein Argument fehlte.

Gut, gelöst.
Liebe Grüsse aus der Eifel,

Georg

Antworten