_StrCpy( ), API-Bibliotheksroutine
Kopiert eine mit Nullzeichen abgeschlossene Zeichenfolge von Quelle src nach Ziel dest.
void _StrCpy(char FAR *dest, char FAR *src)
char FAR *dest; /* Destination location. */
char FAR *src; /* Source location. */
Hinweise
_StrCpy( ) unterstützt keine überlappenden Verschiebungen. Überlappende Verschiebungen sind erforderlich, wenn einige Bytes gemeinsam in src und dest vorkommen. Wenn überlappende Verschiebungen erforderlich sind, verwenden Sie _MemMove( ).
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 ein Visual FoxPro-Array vom Typ Zeichen übergeben. Anschließend wird das zweite Element mit _Store( ) ersetzt.
Vor dem Aufruf von MYFUNC( ) erstellt der Visual FoxPro-Beispielcode ein Array und initialisiert es mit dem Typ Zeichen. MYFUNC( ) übergibt dieses Array als Verweis.
Visual FoxPro-Code
SET LIBRARY TO STRCPY
? STRCPY("Hello", " world") && returns "Hello world"
C-Code
#include <pro_ext.h>
FAR Example(ParamBlk FAR *parm)
{
#define p0 (parm->p[0].val)
#define p1 (parm->p[1].val)
if (!_SetHandSize(p0.ev_handle, p0.ev_length + p1.ev_length))
_Error(182); // "Insufficient memory"
_HLock(p0.ev_handle);
_HLock(p1.ev_handle);
((char FAR *) _HandToPtr(p1.ev_handle))[p1.ev_length] = '\0';
_StrCpy((char FAR *) _HandToPtr(p0.ev_handle) + p0.ev_length,
_HandToPtr(p1.ev_handle));
_RetChar(_HandToPtr(p0.ev_handle));
_HUnLock(p0.ev_handle);
_HUnLock(p1.ev_handle);
}
FoxInfo myFoxInfo[] = {
{"STRCPY", (FPFI) Example, 2, "C,C"},
};
FoxTable _FoxTable = {
(FoxTable FAR *) 0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo
};
Siehe auch
_StrCmp( ), API-Bibliotheksroutine | _StrLen( ), API-Bibliotheksroutine | String-Behandlungsroutinen | _PutStr( ), API-Bibliotheksroutine | _WPutStr( ), API-Bibliotheksroutine