_Execute( ), API-Bibliotheksroutine
Kompiliert die mit Nullwerten abgeschlossene Anweisung, die Sie in stmt angeben und führt sie aus.
int _Execute(char FAR *stmt)
char FAR *stmt; /* Statement to execute. */
Hinweise
Der Parameter stmt kann ein beliebiger Befehl oder eine beliebige Funktion sein, der bzw. die aus dem Befehlsfenster ausgeführt werden kann. Wenn die Ausführung der Anweisung beendet ist, wird die Steuerung normalerweise an die C-Anweisung zurückgegeben, die unmittelbar auf den Aufruf von _Execute( ) folgt. Davon ausgenommen ist das Ausführen von Codeanweisungen, die die Visual FoxPro-Befehle CANCEL oder QUIT ausführen.
_Execute( ) gibt die interne Visual FoxPro-Fehlernummer für alle Fehler zurück, die während des Ausführens der Anweisung auftreten. Wenn keine Fehler auftreten, wird 0 zurückgegeben.
Anmerkung Rufen Sie _Execute( ) nicht aus einer Ereignisbehandlungsroutine auf.
Weitere Informationen zum Erstellen einer API-Bibliothek und ihrer Integration in Visual FoxPro finden Sie unter Zugreifen auf die Visual FoxPro-API.
Beispiel
Im folgenden Beispiel wird die übergebene Visual FoxPro-Anweisung mit _Execute( ) ausgeführt.
Visual FoxPro-Code
SET LIBRARY TO EXECUTE
= EXEC("? 'Hello, world.'")
= EXEC("DISPLAY STATUS")
C-Code
#include <pro_ext.h>
FAR ExecuteEx(ParamBlk FAR *parm)
{
char FAR *cmd;
// Null terminate character string
if (!_SetHandSize(parm->p[0].val.ev_handle,
parm->p[0].val.ev_length+1))
{
_Error(182); // "Insufficient memory"
}
_HLock(parm->p[0].val.ev_handle);
cmd = (char FAR *) _HandToPtr(parm->p[0].val.ev_handle);
cmd[parm->p[0].val.ev_length] = '\0';
_Execute(cmd);
_HUnLock(parm->p[0].val.ev_handle);
}
FoxInfo myFoxInfo[] = {
{"EXEC", (FPFI) ExecuteEx, 1, "C"},
};
FoxTable _FoxTable = {
(FoxTable FAR *) 0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo
};
Siehe auch
_Evaluate( ), API-Bibliotheksroutine | CANCEL-Befehl | QUIT-Befehl | Zugreifen auf die Visual FoxPro-API