|
|
|
Выделение области памяти
|
|||
|---|---|---|---|
|
#18+
Добрый день. Есть у меня маленькая прога по передаче символьного сообщения другому приложению Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Скорее всего я накосячил с выделением памяти. Укажите на ошибку, пожалуйста, сообщение приходит, но совсем не '123', либо процедура-приемник сообщений в другом приложении это сообщение не понимает Модератор: Пользуйтесь тегом (кнопкой) SRC для оформления кода, пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2018, 11:58 |
|
||
|
Выделение области памяти
|
|||
|---|---|---|---|
|
#18+
patrick1968Sizeof(Buffer) Посмотри на результат этого выражения. И больше никогда так не делай. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2018, 12:07 |
|
||
|
Выделение области памяти
|
|||
|---|---|---|---|
|
#18+
patrick1968, если выкинуть ненужное, остаётся: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2018, 12:29 |
|
||
|
Выделение области памяти
|
|||
|---|---|---|---|
|
#18+
27.06.2018 12:29, MBo пишет: > Buffer := UTF8Encode('123'); кисо, скажите мне как художник художнику - НАХРЕНА?! Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2018, 12:31 |
|
||
|
Выделение области памяти
|
|||
|---|---|---|---|
|
#18+
Равен 4, это ведь 4 байта ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2018, 12:32 |
|
||
|
Выделение области памяти
|
|||
|---|---|---|---|
|
#18+
МВо, попробовал ваш вариант, к сожалению не работает есть у меня работающий пример на VFP lcStringToSend=Strconv(lcstr + Chr(0), 5) lnPtrStringToSend = WinAPI_HeapAlloc(WinAPI_GetProcessHeap(), 0, Lenc(lcStringToSend)) Sys(2600, lnPtrStringToSend,Lenc(lcStringToSend), lcStringToSend) && Copy value to memory Local lcCOPYDATASTRUCT As String lcCOPYDATASTRUCT = ; BINTOC(ID_DATA, "4RS") ; && ULONG_PTR dwData + BinToC(Lenc(lcStringToSend), "4RS") ; && DWORD cbData + BinToC(lnPtrStringToSend, "4RS") у меня подозрение, что в структуре оплошность ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2018, 12:43 |
|
||
|
Выделение области памяти
|
|||
|---|---|---|---|
|
#18+
patrick1968Lenc(lcStringToSend) Размер строки и размер указателя на неё это не одно и то же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2018, 12:45 |
|
||
|
Выделение области памяти
|
|||
|---|---|---|---|
|
#18+
CDS.cbData := Length(Buffer) + 1; так это же размер строки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2018, 12:52 |
|
||
|
Выделение области памяти
|
|||
|---|---|---|---|
|
#18+
patrick1968так это же размер строки Всё правильно, он и должен передаваться. Ты что, документацию на WM_COPTDATA совсем не читал?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2018, 12:56 |
|
||
|
Выделение области памяти
|
|||
|---|---|---|---|
|
#18+
Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. так я вот так сейчас сделал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2018, 13:02 |
|
||
|
Выделение области памяти
|
|||
|---|---|---|---|
|
#18+
patrick1968, Что значит - "к сожалению не работает" ? Код рабочий. Может быть, кто-то его неправильно применяет, например, посылает сообщение фиг знает кому. Вот полный тест: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2018, 13:12 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39666472&tid=2040688]: |
0ms |
get settings: |
4ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
158ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 250ms |
| total: | 463ms |

| 0 / 0 |
