Форум программистов, компьютерный форум, киберфорум
Наши страницы

Delphi для начинающих

Войти
Регистрация
Восстановить пароль
 
paskal
446 / 295 / 26
Регистрация: 15.08.2011
Сообщений: 889
#1

Небезопасное использование PChar - Delphi

25.02.2016, 22:46. Просмотров 198. Ответов 6
Метки нет (Все метки)

В программе использую функцию CreateFile. Первый параметр - имя устройства. Его тип PAnsiChar. Если его передать как строку в кавычках, то все нормально. Но мне надо передать в виде переменной (я перебираю имена COM1, COM2 итд, но суть не в этом). Если я передаю имя как переменную типа PAnsiChar или PChar, то компилятор выдает предупреждение что небезопасное использование PChar. Если как адрес строки, то тоже самое. Вообще программа работает правильно, на выдаваемый warning смущает что я что то не так делаю. Может подскажите как положено?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.02.2016, 22:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Небезопасное использование PChar (Delphi):

Pchar из dll - Delphi
в общем, требуется написать UDF под интербазу, катаем dll library UDFStr2; // uses // SysUtils; function...

Delphi String i PChar - Delphi
Вобщем суть в том что нужно из одно приложения в другое передать строку с помощью создания подгрузки файла в память, FileMapping. Саму...

Pchar и освобождение памяти - Delphi
Здравствуйте. Написал парсинг страницы сайта. Запрос страницы идёт из основной программы, после чего полученная строка передаётся в dll...

работа с указателями Pchar - Delphi
имеется код type pstr = ^UnicodeString; var Form1: TForm1; k1:pointer; k2:pointer;

Вывод текста PChar - Delphi
подскажите почему выводит лишние символы var f: File; Size, i: Integer; Buffer: PChar; begin AssignFile(f,...

[Warning] Unsafe type 'PChar' - Delphi
program Launcher; {$APPTYPE CONSOLE} {$R *.RES} uses SysUtils, Forms, Windows, ShellAPI,

6
cotseec
Пишу на Delphi...иногда
1401 / 1261 / 174
Регистрация: 03.12.2012
Сообщений: 3,914
Записей в блоге: 5
Завершенные тесты: 3
25.02.2016, 22:56 #2
Цитата Сообщение от paskal Посмотреть сообщение
что небезопасное использование PChar
если память возвращается обратно, то ничего небезопасного нет
Цитата Сообщение от paskal Посмотреть сообщение
Если его передать как строку в кавычках, то все нормально. Но мне надо передать в виде переменной (я перебираю имена COM1, COM2 итд, но суть не в этом).
а что мешает также передавать строку (тип string), а в функции приводить к PChar?
0
paskal
446 / 295 / 26
Регистрация: 15.08.2011
Сообщений: 889
25.02.2016, 23:56  [ТС] #3
Цитата Сообщение от cotseec Посмотреть сообщение
а что мешает также передавать строку (тип string), а в функции приводить к PChar?
А как string перевести в PChar?
0
northener
пофигист широкого профиля
3194 / 2247 / 479
Регистрация: 15.07.2013
Сообщений: 13,111
26.02.2016, 00:51 #4
Цитата Сообщение от paskal Посмотреть сообщение
компилятор выдает предупреждение что небезопасное использование PChar
Плюнь и разотри. Твоя версия Дельфи относится к временам несбывшихся надежд на абсолютную кроссплатформенность.
Цитата Сообщение от paskal Посмотреть сообщение
А как string перевести в PChar?
Имхо, ты уже это знаешь. Иначе не получил бы такое предостережение.
0
cotseec
Пишу на Delphi...иногда
1401 / 1261 / 174
Регистрация: 03.12.2012
Сообщений: 3,914
Записей в блоге: 5
Завершенные тесты: 3
26.02.2016, 00:54 #5
приведением типов
Delphi
1
2
3
4
var
   SomeVar: string;
...
   if CreateFile(PChar(SomeVar)...) =...
0
northener
пофигист широкого профиля
3194 / 2247 / 479
Регистрация: 15.07.2013
Сообщений: 13,111
26.02.2016, 01:00 #6
Цитата Сообщение от cotseec Посмотреть сообщение
приведением типов
Именно в этом случае ТС и получает сей Warning в своей версии Дельфи
1
paskal
446 / 295 / 26
Регистрация: 15.08.2011
Сообщений: 889
27.02.2016, 12:47  [ТС] #7
Цитата Сообщение от cotseec Посмотреть сообщение
приведением типов
На это Делфи и ругается. Версия у меня Delphi7 если что.
0
27.02.2016, 12:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.02.2016, 12:47
Привет! Вот еще темы с ответами:

Конвертация String (PChar) в Array of char - Delphi
Привет! Помогите, плиз, конвертировать String (или PChar) в Array of char. Когда-то давно еще на Паскале писал, а теперь вот никак не...

Работа с Pchar - Delphi
Добрый день! У меня есть задача. Hанее почти не работал с PChar. Помогите разобраться. В длл есть функция: GetCfgData(var...

Как переступить через #0 в PChar ? - Delphi
К примеру Функция_В_ДЛЛ SetStr(Value: PChar): PChar; stdcall; begin // Валуя должна равняться := 'abcd' + #0 + #0 + 'abcd' ...

String - '1234567890123456SomethingElse' PChar - '1234567890123456' - Delphi
Проблема вот какая: при переводе строки String в строку PChar: PChar('asdf' + bbb + 'dsaf'), где bbb - типа String возникает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.