View Full Version : CoCreateInstance Release CoInitialize() CoUninitialize()


Pablo
06-02-2006, 11:35 PM
Estou com o seguinte problema:
Tenho um executável C++ que provê uma interface IDispatch. Criei uma
aplicação simples (single thread) para acessar essa interface. Eu consigo
acessar essa interface e chamar seus métodos (o retorno desses métodos é
correto). Até aqui ok.
O problema é que se eu chamo o método Release, a aplicação simplesmente
trava (não consegue matar o processo que eu criei) e se eu tiro o release,
recebo a seguinte mensagem: "This application has requested the Runtime to
terminate it in an unusual way. Please contact the application's support team
for more information.". Já estou utilizando as função CoInitialize() e
CoUninitialize().
Eu vou utilizar essas chamadas em uma aplicação mais complexa, e quando eu
tento fazer isso, ou ocorre um RunTime error (qd não utilizo Release) ou a
aplicação trava (qd utilizo Release) até eu matar o processo por minha conta
(e a aplicação volta a funcionar normalmente).

Se alguém puder me ajudar, agradeço!
Abraços

Frederico Pissarra
06-06-2006, 01:49 PM
"Pablo" <Pablo@discussions.microsoft.com> escreveu na mensagem
news:A38BA3B9-B96E-48F2-862F-F31535F72FAF@microsoft.com...
> Estou com o seguinte problema:
> Tenho um executável C++ que provê uma interface IDispatch. Criei uma
> aplicação simples (single thread) para acessar essa interface. Eu consigo
> acessar essa interface e chamar seus métodos (o retorno desses métodos é
> correto). Até aqui ok.
> O problema é que se eu chamo o método Release, a aplicação simplesmente
> trava (não consegue matar o processo que eu criei) e se eu tiro o release,
> recebo a seguinte mensagem: "This application has requested the Runtime to
> terminate it in an unusual way. Please contact the application's support
> team
> for more information.". Já estou utilizando as função CoInitialize() e
> CoUninitialize().
> Eu vou utilizar essas chamadas em uma aplicação mais complexa, e quando eu
> tento fazer isso, ou ocorre um RunTime error (qd não utilizo Release) ou a
> aplicação trava (qd utilizo Release) até eu matar o processo por minha
> conta
> (e a aplicação volta a funcionar normalmente).
>
> Se alguém puder me ajudar, agradeço!
> Abraços

O Objeto que implementa a interface IDispatch contém acessos a objetos via
interfaces tb? Vc os está liberando?
Essa nova interface implementa AddRef e Release corretamente? Vc usa ATL?

Esse comportamento do Release() é incomum.... ainda não vi algo assim...

[]s
Fred