Artigo: 206076 - Última revisão: quinta-feira, 22 de Maio de 2008 - Revisão: 7.0 Como organizar interfaces em apartments no Visual C++
Nota Microsoft Visual C++ 2008, o Microsoft Visual C++ 2005, Microsoft Visual C++ .NET 2003 e Microsoft Visual C++ .NET 2002 suportam o modelo de código gerido que é fornecido pelo Microsoft .NET Framework e o modelo de código do Microsoft Windows nativo não gerido. As informações neste artigo aplicam-se apenas ao código de Visual C++ não gerido. SumárioMarshal.exe é um exemplo que mostra as diferentes formas de empacotamento de referências uma interface entre apartments. Mais InformaçãoO ficheiro seguinte está disponível para transferência a partir do Centro de transferências da Microsoft: Reduzir esta imagem ![]() Para obter mais informações sobre como transferir ficheiros de suporte da Microsoft, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base: 119591
(http://support.microsoft.com/kb/119591/
)
Como obter ficheiros de suporte da Microsoft a partir de serviços online Microsoft procedeu de vírus neste ficheiro. Microsoft utilizou o mais recente software de detecção de vírus que estava disponível na data em que o ficheiro foi publicado. O ficheiro é alojado em servidores com segurança avançada o que ajuda a impedir alterações não autorizadas ao ficheiro. Um Single-Threaded Apartment (STA) é um thread foi inicializado com CoInitialize() ou CoInitializeEx (NULL, COINIT_APARTMENTTHREADED). Além disso, outros threads no mesmo processo que utilizam COM também devem chamar CoInitialize() ou CoInitializeEx() para inicializar o COM para o thread. Se criar um objecto COM em um STA thread, não é possível passar um apontador de interface para outro thread STA e chamada fora dessa ponteiro. Uma vez que supostamente tem que ser serializado o chamadas para objectos STA, COM impõe esta permitindo apenas um thread de chamadas para o objecto STA (o thread onde foi criado). Se o apontador de interface que passar para o segundo thread STA um apontador para um proxy, obterá um erro HRESULT de 0x8001010E ou RPC_E_WRONG_THREAD (a aplicação chamou uma interface que foi empacotar as referências para um thread diferente). Se o apontador de interface é um apontador directo para o objecto, COM não irá impor a serialização, não obterá o erro acima e será efectuada a chamada de método de interface. No entanto, este é comportamento ainda ilegal em parte do cliente. Pode ainda chamar métodos no objecto STA de thread STA diferente desde fazê-lo através de um proxy. Um proxy é uma cópia da interface que obterá através de empacotamento de referências de unmarshaling. Quando efectuar uma chamada através do proxy, faz COM um parâmetro de thread e a chamada termina execução no contexto do thread onde foi criado o objecto STA. Existem três formas de empacotamento/desempacotar uma interface para outro thread STA:
ReferênciasPara obter mais informações, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base: 172314
(http://support.microsoft.com/kb/172314/
)
EXPLICAÇÃO do erro RPC_E_WRONG_THREAD A informação contida neste artigo aplica-se a:
Tradução automáticaIMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado. Clique aqui para ver a versão em Inglês deste artigo: 206076
(http://support.microsoft.com/kb/206076/en-us/
)
| Outros Recursos Outros Sites de Suporte
ComunidadesObtenha Ajuda AgoraTraduções de Artigos
|






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email


Voltar ao topo
