Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.11.2014, 16:35   #1
Halogen
Пользователь
 
Аватар для Halogen
 
Регистрация: 23.11.2013
Сообщений: 46
Вопрос 'String' and 'PAnsiChar'

Помогите разобраться, вроде все правильно а ругается
Код:
var
  Name,Adres:PChar;
begin
  Name:=PChar(ExtractFileName(Application.ExeName));
  Adres:=PChar(GetUserStartup);
CopyFile(Name,Adres+'\'+Name,False);
end;
Ругается на строчку копирования, что не правильные параметры
Halogen вне форума Ответить с цитированием
Старый 23.11.2014, 17:07   #2
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

Код:
var
s,adres:string;
begin
s:=trim(extractfilepath(paramstr(0))+'names.dat');
Adres:=GetUserStartup;
if not CopyFile(Pchar(s),pchar(Adres+'\'+s),False) ....; //функция 
end;

Не?
from dark to light)

Последний раз редактировалось Алексей_2012; 23.11.2014 в 17:10.
Алексей_2012 вне форума Ответить с цитированием
Старый 23.11.2014, 17:28   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
не правильные параметры
Текст ругани не помешал бы. Ну да ладно, Алексей дал правильный ответ а я просто прокоментирую.
Функциям WinAPI (судя по всему тут именно она) подавай указатели. А выражение типа Adres+'\'+Name автоматически переводит в string. Поэтому результат выражения нужно переводить в PChar, что и было предложено.
Единственное напоминание: Функции такого типа могут быть юникодными и ансишными, поэтому нужно знать что использовать PChar или PAnsiChar или PWideChar(). По идее Делфи этим должна сама заниматься, но иногда все же стоит учитывать самому программисту.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.11.2014, 18:41   #4
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

В Delphi2009+ всё что было PChar стало PWideChar. Пиши вместо PChar PAnsiChar, тогда заработает.
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 23.11.2014, 19:29   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Пиши вместо PChar PAnsiChar, тогда заработает.
Неудачный совет )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pansichar и string Kapitan4ik Общие вопросы Delphi 4 09.11.2012 21:25
String и PAnsiChar nls Общие вопросы Delphi 12 27.12.2011 23:50
из String в Pansichar пауэрлифтинг Общие вопросы Delphi 10 05.02.2010 02:40
как из string перевести в PAnsiChar Sparky Общие вопросы Delphi 3 29.08.2009 14:12
pansichar to string Toxa Общие вопросы Delphi 16 31.05.2007 13:40