Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.19;
Скачать: CL | DM;

Вниз

Uniquestring   Найти похожие ветки 

 
Lizerginnn   (2002-12-09 15:04) [0]

Для чего нужна функция Uniquestring()? Без неё не хочет работать Chartooem().


 
KSergey ©   (2002-12-09 15:26) [1]

Примерчик бы... Ну хоть кусочек кода, а? Ну хоть маааленький... Но желательно тот, где Chartooem используется.
А то, мягко говоря, с трудом верится в сие заявление...


 
Lizerginnn   (2002-12-09 15:33) [2]

var s:string;
procedure ...
begin
s:="Привет";
UniqueString(s); //убери строку
CharToOem(pchar(s),pchar(s));
end;


 
Dimka Maslov ©   (2002-12-09 15:50) [3]

Организация работы со строками в Delphi такова, что несколько переменных типа String могут ссылаться на один и тот-же блок памяти. При выполнении программы скрыто ведётся подсчёт ссылок на строку, когда количество достигает нулю, выделеная под строку память высвобождается. Когда происходит приваивание строк S1 := S2, под строку S2 память не выделяется, а увеличивается количество ссылок и S2 приваивается значение S1. Процедура же UniqueString нужна для того, чтобы быть уверенным, что данная переменная типа string ссылается на область памяти, на которую больше никто не ссылается. Если количество ссылок на строку, переданную в UniqueString, то ничего не происходит, в противном случае выделяется память под новую строку и переменной присваивается указатель на блок памяти с количеством ссылок 1.

Может случиться и так, что строка находится в области памяти, недоступной на запись. При этом такие функции как CharToOEM будут приводить к AV. Чтобы этого избежать и разместить строку в динамической памяти, тоже надо использовать UniqueString



Страницы: 1 вся ветка

Текущий архив: 2002.12.19;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.021 c
3-61497
sen
2002-12-02 15:21
2002.12.19
Частичная выборка


1-61576
Levsha
2002-12-09 22:44
2002.12.19
Как изменить цвет строки в DBgrid?


3-61413
Diouzshev
2002-11-27 18:57
2002.12.19
Странно ведет себя цикл while not DataSet.Eof do


3-61510
Scorp
2002-12-02 23:01
2002.12.19
Как безболезненно установить базу данных на другой комп


8-61705
Владимир Васильев
2002-09-04 13:06
2002.12.19
NEWS: ЭКВАЛАЙЗЕР