
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
22.05.2006, 13:36
|
|||
|---|---|---|---|
Ошибка при вызове COM |
|||
|
#18+
Уже писал на этот счет, но так и не получил ответа, но вот появились новые факты. Пишу я на Visual C++ .Net, проекты MFC. Я работаю через дерективу #import, с "умными указателями" на классы в объектах COM. Создавал свои объекты, пытался с ними работать и получал при выходе из программы такую ошибку: Код: plaintext 1. 2. 3. 4. 5. Думал, может это у меня такие кривые объекты com, ведь когда работал с Excel тоже через import, то все было просто превосходно. Но вот стал работать с MSXML, так выходит такая же ошибка! В чем дело? Почему это происходит??? Указатели я сам не удаляю, они у меня объявлены в членах класса. Как только происходит удаление этого класса (диалог), сразу программа вылетает в выше указанный код. Пожалуйста, помогите!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.05.2006, 15:09
|
|||
|---|---|---|---|
Ошибка при вызове COM |
|||
|
#18+
но при работе с умными указателями не надо вызывать релиз. ------------------ - А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.05.2006, 15:14
|
|||
|---|---|---|---|
|
|||
Ошибка при вызове COM |
|||
|
#18+
HomosumУже писал на этот счет, но так и не получил ответа, но вот появились новые факты. Пишу я на Visual C++ .Net, проекты MFC. Я работаю через дерективу #import, с "умными указателями" на классы в объектах COM. Создавал свои объекты, пытался с ними работать и получал при выходе из программы такую ошибку: Код: plaintext 1. 2. 3. 4. 5. Думал, может это у меня такие кривые объекты com, ведь когда работал с Excel тоже через import, то все было просто превосходно. Но вот стал работать с MSXML, так выходит такая же ошибка! В чем дело? Почему это происходит??? Указатели я сам не удаляю, они у меня объявлены в членах класса. Как только происходит удаление этого класса (диалог), сразу программа вылетает в выше указанный код. Пожалуйста, помогите!!! Была у меня такая же фигня с ADO... Вылечилась банально: надо было в коде прописать уничтожение созданных объектов. Например, такой код (не смог найти оригинал, поэтому приведу лишь схему): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.05.2006, 15:15
|
|||
|---|---|---|---|
|
|||
Ошибка при вызове COM |
|||
|
#18+
Станислав C. HomosumУже писал на этот счет, но так и не получил ответа, но вот появились новые факты. Пишу я на Visual C++ .Net, проекты MFC. Я работаю через дерективу #import, с "умными указателями" на классы в объектах COM. Создавал свои объекты, пытался с ними работать и получал при выходе из программы такую ошибку: Код: plaintext 1. 2. 3. 4. 5. Думал, может это у меня такие кривые объекты com, ведь когда работал с Excel тоже через import, то все было просто превосходно. Но вот стал работать с MSXML, так выходит такая же ошибка! В чем дело? Почему это происходит??? Указатели я сам не удаляю, они у меня объявлены в членах класса. Как только происходит удаление этого класса (диалог), сразу программа вылетает в выше указанный код. Пожалуйста, помогите!!! Была у меня такая же фигня с ADO... Вылечилась банально: надо было в коде прописать уничтожение созданных объектов. Например, такой код (не смог найти оригинал, поэтому приведу лишь схему): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Sorry, я работаю в VS 6.0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.05.2006, 16:35
|
|||
|---|---|---|---|
Ошибка при вызове COM |
|||
|
#18+
maXmoно при работе с умными указателями не надо вызывать релиз. ------------------ - А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm Так я и не вызываю Relese. У меня дебаггер туда прыгает! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.05.2006, 16:45
|
|||
|---|---|---|---|
Ошибка при вызове COM |
|||
|
#18+
Вроде решил проблему, но думаю, не будет ли проблем в дальнейшем??? Я убрал ::CoUninitialize(); и меня описанная ошибка перестала вызываться!!! Я так понял, что удаляться умные указатели должны именно до ::CoUninitialize(); Но тогда возникает резонный вопрос. А нужно ли вообще вызываеть эту функцию? Если да, то такие последствия могут быть от ее не вызова. Где же мне ее тогда вызывать??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.05.2006, 17:17
|
|||
|---|---|---|---|
Ошибка при вызове COM |
|||
|
#18+
Dmitrii K. CoUninitialize Работа с COM читайте доки... Я создал деструктор для класса CTestXMLApp, т.е. для класса приложения и вызвал там CoUninitialize. Так можно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=57&mobile=1&tid=2031203]: |
0ms |
get settings: |
10ms |
get forum list: |
23ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
67ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
| others: | 223ms |
| total: | 410ms |

| 0 / 0 |
