Копирует строку, заканчивающуюся нуль-символом, из src в dest.
void _StrCpy(char FAR *dest, char FAR *src) char FAR *dest; /* Область назначения. */ char FAR *src; /* Область источника. */ |
Примечания
_StrCpy( ) не поддерживает пересылку с перекрытием. Перекрытие имеет место, когда src и dest имеют общие байты. Если вам нужно выполнить пересылку с перекрытием, используйте _MemMove( ).
Для получения дополнительной информации о том, как создавать библиотеку API и интегрировать её в Visual FoxPro, смотрите Доступ к API Visual FoxPro.
Пример
В следующем примере передается массив Visual FoxPro символьного типа. Затем второй элемент массива заменяется с помощью _Store( ).
Прежде чем вызвать функцию MYFUNC( ), код Visual FoxPro данного примера создает массив и инициализирует его значением символьного типа. MYFUNC( ) передает этот массив по ссылке.
Код Visual FoxPro
![]() | |
---|---|
SET LIBRARY TO STRCPY ? STRCPY("Hello", " world") && returns "Hello world" |
Код C
![]() | |
---|---|
#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 }; |