Поделиться через


Функция StrDupA (shlwapi.h)

Дублирует строку.

Синтаксис

PSTR StrDupA(
  PCSTR pszSrch
);

Параметры

pszSrch

Тип: PCTSTR

Указатель на константу nullсимвольной строкой, завершаемой символьной строкой.

Возвращаемое значение

Тип: PTSTR

Возвращает адрес скопированной строки или NULL, если строка не может быть скопирована.

Замечания

StrDup выделяет хранилище размера исходной строки. Если выделение хранилища выполнено успешно, исходная строка копируется в дубликат строки.

Эта функция использует LocalAlloc для выделения места в хранилище для копии строки. Вызывающее приложение должно освободить эту память путем вызова функции LocalFree указателя, возвращаемой вызовом StrDup.

Примеры

Это простое консольное приложение иллюстрирует использование StrDup.

#include <windows.h>
#include <shlwapi.h>
#include <stdio.h>

void main(void)
{
   char buffer[] = "This is the buffer text";
   char *newstring;

   // Note: Never use an unbounded %s format specifier in printf.
   printf("Original: %25s\n", buffer);

   newstring = StrDup(buffer);
   if (newstring != NULL)
   {
       printf("Copy:     %25s\n", newstring);
       LocalFree(newstring);
   }
}

OUTPUT:
- - - - - - 
Original: This is the buffer text
Copy:     This is the buffer text

Заметка

Заголовок shlwapi.h определяет StrDup как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 2000 Профессиональный, Windows XP [только классические приложения]
минимальный поддерживаемый сервер Windows 2000 Server [только классические приложения]
целевая платформа Виндоус
заголовка shlwapi.h
библиотеки Shlwapi.lib
DLL Shlwapi.dll (версия 4.71 или более поздняя)