Новости



Visual FoxPro 9 позволяет создавать ещё более производительные приложения баз данных.
Двадцатиление FoxPro! Microsoft принимает поздравления.
Visual FoxPro Toolkit for .NET - более 225 функций VFP 7.0, для языков .NET (подробнее)

fox00020.gif

В следующем примере осуществляется размножение символа в памяти, предоставлен ой программой _AllocHand( ). Используемая ниже API-функция REPLTOMH( ) возв ащает в Visual FoxPro дескриптор блока памяти. Из Visual FoxPro этот дескриптор пе едается (как целое число, "I") API-функциям, в которых предусмотрен аргумент в виде дескриптора блока памяти.

Код Visual FoxPro

SET LIBRARY TO ALLOCHAN

mh = REPLTOMH("x", 120)

? MHTOFOX(mh)

? LEN(MHTOFOX(mh))

? MHTOFOX(mh)

= FREEMH(mh)

Код C

#include <pro_ext.h>

// Replicate char argument to memory allocated with _AllocHand().

// Return the memory handle to Visual FoxPro.

void FAR replToMH(ParamBlk FAR *parm)

{

char FAR *rep;

char c = *(char *) _HandToPtr(parm->p[0].val.ev_handle);

MHANDLE mh;

if ((mh = _AllocHand((int) parm->p[1].val.ev_long + 1)) == 0)

{

_Error(182); // "Insufficient memory"

}

_HLock(mh);

rep = _HandToPtr(mh);

_MemFill(rep, c, (int) parm->p[1].val.ev_long);

rep[parm->p[1].val.ev_long] = '\0'; // null terminate

_HUnLock(mh);

_RetInt(mh, 10);

}

// Returns characters in memory handle.
// Argument in call from Visual FoxPro

// must be a valid Visual FoxPro memory handle.

void FAR MHToFoxString(ParamBlk FAR *parm)

{

char FAR *string;

MHANDLE mh = parm->p[0].val.ev_long;

_HLock(mh);

string = _HandToPtr(mh);

_RetChar(string);

_HUnLock(mh);

}

// Frees memory handle. Argument in call from
// Visual FoxPro must be a valid

// Visual FoxPro memory handle.

void FAR freeMH(ParamBlk FAR *parm)

{

_FreeHand((MHANDLE) parm->p[0].val.ev_long);

}

FoxInfo myFoxInfo[] = {

{"REPLTOMH", (FPFI) replToMH, 2, "C,I"},

{"MHTOFOX", (FPFI) MHToFoxString, 1, "I"},

{"FREEMH", (FPFI) freeMH, 1, "I"},

};

FoxTable _FoxTable = {

(FoxTable FAR *) 0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo

};



Новое на сайте

  • Обновлен портфель программиста

    Добавлены: Установка HTML Help (Создание справочной системы), Imagedit.zip - Графический редактор ( ico и bmp), Библиотека локализации HTML Help (Русский)
  • Новые примеры программ

    Установка библиотек, Игровая программа "Охота на лис", Установка библиотек "Охота на лис", plastic -"Платежки", Библиотеки (на FPD26), platan -"Платежки" (на Clipper 5.2)
  • Обновленна справка

    Подсказки, технология программирования и использование Visual FoxPro. Команды, функции, операторы, объекты, свойства, события и методы.