Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: Excel 2013 | Office 2013 | Visual Studio
Используется для освобождения ресурсов памяти, выделенных Microsoft Excel при создании возвращаемого значения XLOPER/ XLOPER12 при вызове Excel4, Excel4v, Excel12 или Excel12v. Функция xlFree освобождает вспомогательную память и сбрасывает указатель на значение NULL, но не уничтожает другие частиXLOPER12XLOPER/ .
Excel4(xlFree, 0, n, LPXLOPER px_1, ..., LPXLOPER px_n);
Excel12(xlFree, 0, n, LPXLOPER12 px_1, ..., LPXLOPER12 px_n);
Параметры
px_1, ..., px_n
Один или несколько XLOPER12 XLOPER/ будут освобождены. В версиях Excel до 2003 максимальное число указателей, которые можно передать, составляет 30. Начиная с Excel 2007 этот параметр увеличен до 255.
Значение свойства и возвращаемое значение
Эта функция не возвращает значение.
Замечания
Необходимо освободить все значения XLOPER , которые вы получаете в качестве возвращаемого значения из Excel4 или Excel4v , и все XLOPER12 , которые вы получаете в качестве возвращаемого значения из Excel12 или Excel12v , если они относятся к одному из следующих типов: xltypeStr, xltypeMulti или xltypeRef. Другие типы всегда безопасно освобождать, даже если они не используют вспомогательную память, если вы получили их из Excel4 или Excel12.
Если вы возвращаетесь в Excel указатель наXLOPER12XLOPER/ , который по-прежнему содержит память, выделенную Excel для освобождения, необходимо задать xlbitXLFree, чтобы обеспечить освобождение памяти в Excel.
Пример
В этом примере вызывается МЕТОД GET. WORKSPACE(1) для возврата платформы, на которой в настоящее время выполняется Excel в виде строки. Код копирует эту возвращенную строку в буфер для последующего использования. Код помещает буфер обратно в XLOPER12 для последующего использования с функцией Excel. Наконец, код отображает строку в поле оповещения.
\SAMPLES\EXAMPLE\EXAMPLE.C
short WINAPI xlFreeExample(void)
{
XLOPER12 xRes, xInt;
XCHAR buffer[cchMaxStz];
int i,len;
// Create an XLOPER12 for the argument to Getworkspace.
xInt.xltype = xltypeInt;
xInt.val.w = 1;
// Call GetWorkspace.
Excel12f(xlfGetWorkspace, &xRes, 1, (LPXLOPER12)&xInt);
// Get the length of the returned string
len = (int)xRes.val.str[0];
//Take into account 1st char, which contains the length
//and the null terminator. Truncate if necessary to fit
//buffer.
if (len > cchMaxStz - 2)
len = cchMaxStz - 2;
// Copy to buffer.
for(i = 1; i <= len; i++)
buffer[i] = xRes.val.str[i];
// Null terminate, Not necessary but a good idea.
buffer[len] = '\0';
buffer[0] = len;
// Free the string returned from Excel.
Excel12f(xlFree, 0, 1, &xRes);
// Create a new string XLOPER12 for the alert.
xRes.xltype = xltypeStr;
xRes.val.str = buffer;
// Show the alert.
Excel12f(xlcAlert, 0, 1, (LPXLOPER12)&xRes);
return 1;
}