Такая ситуация:
1. Имеется COM-сервер COMSvr (DLL), написанный на VC++6.0
2. COMSvr реализует COM-объект CoBadObj
3. COMSvr используют клиенты, написанные на Delphi 6.0
Проблема:
Если клиент создает только один объект CoBadObj, все в порядке, видимых неполадок нет.
Если клиент создает более одного объекта CoBadObj, при выходе из приложения-клиента вываливается сообщение об ошибке (инструкция XXXXX обратилась к области памяти XXXXX...).
В отладчике в VC проверял — все объекты удаляются, но после этого вся студия намертво виснет (!).
Есть ли какие-нибудь соображения?
Заранее благодарен.
Re: Проблема с созданием >1 COM объекта в клиенте на Delphi
Здравствуйте, Pavel A, Вы писали:
PA>1. Имеется COM-сервер COMSvr (DLL), написанный на VC++6.0 PA>2. COMSvr реализует COM-объект CoBadObj PA>3. COMSvr используют клиенты, написанные на Delphi 6.0
PA>Проблема: PA>Если клиент создает только один объект CoBadObj, все в порядке, видимых неполадок нет. PA>Если клиент создает более одного объекта CoBadObj, при выходе из приложения-клиента вываливается сообщение об ошибке (инструкция XXXXX обратилась к области памяти XXXXX...). PA>В отладчике в VC проверял — все объекты удаляются, но после этого вся студия намертво виснет (!).
PA>Есть ли какие-нибудь соображения?
Есть. Код сервера написан криво. Нужно дебагать. Нужно выяснить, что вызвало ошибку, и что в твоем исходном тексте нужно поправить, чтоб ее не было.
GS
Re[2]: Проблема с созданием >1 COM объекта в клиенте на Delp
От:
Аноним
Дата:
06.02.03 08:15
Оценка:
Здравствуйте, George Seryakov, Вы писали:
GS>Есть. Код сервера написан криво. Нужно дебагать. Нужно выяснить, что вызвало ошибку, и что в твоем исходном тексте нужно поправить, чтоб ее не было.
Спасибо. Что криво, я и сам знал, не знал где, так как дебагер не показывал, где вылет.
Но, терпень и труд все перетрут Поэтому все же я разобрался. Проблема была со статическими членами. Надо быть внимательнее.
Re[3]: Проблема с созданием >1 COM объекта в клиенте на Delp