Копирует строку, заканчивающуюся нуль-символом, из src в dest.

void _StrCpy(char FAR *dest, char FAR *src)
char FAR *dest;            /* Область назначения. */
char FAR *src;               /* Область источника. */

Collapse imageПримечания

_StrCpy( ) не поддерживает пересылку с перекрытием. Перекрытие имеет место, когда src и dest имеют общие байты. Если вам нужно выполнить пересылку с перекрытием, используйте _MemMove( ).

Для получения дополнительной информации о том, как создавать библиотеку API и интегрировать её в Visual FoxPro, смотрите Доступ к API Visual FoxPro.

Collapse imageПример

В следующем примере передается массив Visual FoxPro символьного типа. Затем второй элемент массива заменяется с помощью _Store( ).

Прежде чем вызвать функцию MYFUNC( ), код Visual FoxPro данного примера создает массив и инициализирует его значением символьного типа. MYFUNC( ) передает этот массив по ссылке.

Collapse imageКод Visual FoxPro

  CopyCode imageCopy Code
SET LIBRARY TO STRCPY  
? STRCPY("Hello", " world")   && returns "Hello world"

Collapse imageКод C

  CopyCode imageCopy 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
};

Collapse imageСмотрите также