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
Foren-Administrator
Foren-Administrator
Beiträge: 2223
Registriert: Fr, 08. Feb 2008 21: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 S. Lorrig
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.

ramses
Programmier-Gott
Programmier-Gott
Beiträge: 1047
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
Foren-Administrator
Foren-Administrator
Beiträge: 2223
Registriert: Fr, 08. Feb 2008 21: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 S. Lorrig
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.

georg
Foren-Administrator
Foren-Administrator
Beiträge: 2223
Registriert: Fr, 08. Feb 2008 21: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 S. Lorrig
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.

Antworten