|
|
|
Работа с PWideString
|
|||
|---|---|---|---|
|
#18+
Насколько я понимаю, если мы пишем в PWideChar динамически сформированную строку (а не литерал типа 'фыва'), то нужно выделить ей память, а по окончанию работы почистить память. У меня вылетает Access Violation при очистке памяти. делаю так: Код: pascal 1. 2. 3. 4. 5. 6. 7. Что не так делаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2019, 10:46 |
|
||
|
Работа с PWideString
|
|||
|---|---|---|---|
|
#18+
SQL-TalkerЧто не так делаю? Зачем это? Что такое "динамически сформированная строка"? В коде нет этого процесса. В заголовке pwidestring, а в коде pwidechar - что в итоге? С pwidestring можно работать как с string. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2019, 10:48 |
|
||
|
Работа с PWideString
|
|||
|---|---|---|---|
|
#18+
wadman, С заголовком промахнулся. Имелось в виду PWideChar Под "динамически сформированная строка" имелось в виду например результат функции, которая возвращает строку. Так что, память не нужно очищать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2019, 10:53 |
|
||
|
Работа с PWideString
|
|||
|---|---|---|---|
|
#18+
SQL-TalkerТак что, память не нужно очищать? Нужно, только засада в том, что нужно работать именно с той памятью, которая выделена, а не с той, которая получилась в этой строке: SQL-Talker Код: pascal 1. Отсюда PValue имеет другое значение. Отладчик в помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2019, 10:56 |
|
||
|
Работа с PWideString
|
|||
|---|---|---|---|
|
#18+
SQL-TalkerНасколько я понимаю, если мы пишем в PWideChar динамически сформированную строку (а не литерал типа 'фыва'), то нужно выделить ей память, а по окончанию работы почистить память. У меня вылетает Access Violation при очистке памяти. делаю так: Код: pascal 1. 2. 3. 4. 5. 6. 7. Что не так делаю? Начнем с того, что Код: pascal 1. выделит в два раза меньше памяти, чем ты ожидаешь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2019, 10:57 |
|
||
|
Работа с PWideString
|
|||
|---|---|---|---|
|
#18+
SQL-TalkerНасколько я понимаю, если мы пишем в PWideChar динамически сформированную строку (а не литерал типа 'фыва'), то нужно выделить ей память, а по окончанию работы почистить память. У меня вылетает Access Violation при очистке памяти. делаю так: Код: pascal 1. 2. 3. 4. 5. 6. 7. Что не так делаю? идем дальше, Код: pascal 1. Здесь ты меняешь значение указателя, он теперь указывает на память выделенную под StrValue, разумеется последующий FreeMem дает AV ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2019, 11:00 |
|
||
|
Работа с PWideString
|
|||
|---|---|---|---|
|
#18+
Квейд, 1. Да, лажа тут, нужно GetMem(PValue, Length(StrValue) * 2); т.к. WideChar 2. Как записать StrValue в область памяти на которую указывает PValue ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2019, 11:10 |
|
||
|
Работа с PWideString
|
|||
|---|---|---|---|
|
#18+
SQL-Talker2. Как записать StrValue в область памяти на которую указывает PValue ? Можно использовать Move, но в твоем случае извращаться не нужно, тебе справка дает почти готовый штатный пример http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/SysUtils_StrNew@PAnsiChar.html]http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/SysUtils_StrNew@PAnsiChar.html Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2019, 11:15 |
|
||
|
|

start [/forum/topic.php?fid=58&fpage=73&tid=2039460]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
27ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 201ms |
| total: | 285ms |

| 0 / 0 |
