|
|
|
проблемы с TXMLDocument
|
|||
|---|---|---|---|
|
#18+
Простейший тестовый XML Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. форма, одна кнопка. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Delphi Rio 10.3. В отдельном приложении в виде как_бы_рабочей демки - все нормально. А вот если включить EurekaLog - моментально вылетает DeadObjectVirtualMethodCall. В реальном многопоточном приложении 3 раза из 4 вылетает PointerError. Копнул внутрь - в процессе обращения к XMLDoc.DocumentElement вызывается TXMLNode.GetChildNodes, после которого дважды освобождается интерфейс, один из которых приводит к TXMLDocument.Destroy; Естественно, что после этого обращения к пропам освобожденного объекта работает только если никто другой туда ничего не успеет записать. Гугл гуглил, везде примитивные демки типа моей, мол смотрите как все просто. Пробовал в Vendor ставить OXML вместо стандартного MSXML, все так же (что логично). Я чего-то не понимаю, или это отличный баг TXMLDocument ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2020, 09:54 |
|
||
|
проблемы с TXMLDocument
|
|||
|---|---|---|---|
|
#18+
var XMLDoc : IXMLDocument; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2020, 10:24 |
|
||
|
проблемы с TXMLDocument
|
|||
|---|---|---|---|
|
#18+
спасибо. а в http://docwiki.embarcadero.com/CodeExamples/Rio/en/TXMLDocumentDOMVendor_(Delphi) используют TXMLDocument. Ладно, неважно. Работает и работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2020, 10:55 |
|
||
|
проблемы с TXMLDocument
|
|||
|---|---|---|---|
|
#18+
Vizit0r Ладно, неважно. Vizit0r Код: pascal 1. Vizit0r Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2020, 11:57 |
|
||
|
проблемы с TXMLDocument
|
|||
|---|---|---|---|
|
#18+
Vizit0r ... Копнул внутрь - в процессе обращения к XMLDoc.DocumentElement вызывается TXMLNode.GetChildNodes, после которого дважды освобождается интерфейс, один из которых приводит к TXMLDocument.Destroy; Естественно, что после этого обращения к пропам освобожденного объекта работает только если никто другой туда ничего не успеет записать. ... Я чего-то не понимаю, или это отличный баг TXMLDocument ? http://docwiki.embarcadero.com/Libraries/Rio/en/Xml.XMLDoc.TXMLDocument авторWhen TXMLDocument is created without an Owner, it behaves like an interfaced object. That is, when all references to its interface are released, the TXMLDocument instance is automatically freed. When TXMLDocument is created with an Owner, however, it behaves like any other component, and is freed by its Owner. When you add a TXMLDocument component from the component palette to a form or data module, it is automatically created with an Owner. When the TXMLDocument component is created using the global LoadXMLDocument function (or by a function that the XML Data Binding wizard generates to return the root node of the document), the function creates a TXMLDocument instance without an Owner. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2020, 12:10 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39959284&tid=2038310]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
186ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
25ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 444ms |

| 0 / 0 |
