ID do artigo: 206076 - Última revisão: quinta-feira, 22 de maio de 2008 - Revisão: 7.0 Como empacotar interfaces em compartimentos no Visual C++
Observação Microsoft Visual C++ 2008, o Microsoft Visual C++ 2005, o Microsoft Visual C++ .NET 2003 e o Microsoft Visual C++ .NET 2002 oferecem suporte o modelo de código gerenciado que é fornecido pelo Microsoft .NET Framework e o modelo de código do Windows de Microsoft nativo não gerenciado. As informações neste artigo se aplicam somente ao código do Visual C++ não gerenciado. SumárioMarshal.exe é um exemplo que mostra as diferentes maneiras de empacotamento de uma interface em compartimentos. Mais InformaçõesO seguinte arquivo está disponível para download no Centro de download da Microsoft: Recolher esta imagem ![]() Para obter mais informações sobre como baixar os arquivos de suporte da Microsoft, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft: 119591
(http://support.microsoft.com/kb/119591/
)
Como obter arquivos de suporte da Microsoft de serviços on-line Microsoft examinou esse arquivo em busca de vírus. Microsoft utilizou o mais recente software de detecção de vírus que estava disponível na data em que o arquivo foi publicado. O arquivo é armazenado em servidores com segurança avançada que ajudam a evitar qualquer alteração não autorizada no arquivo. Um Single-Threaded Apartment (STA) é um thread que foi inicializado com CoInitialize() ou CoInitializeEx (NULL, COINIT_APARTMENTTHREADED). Além disso, os outros threads no mesmo processo que usam COM também devem chamar CoInitialize() ou CoInitializeEx() ao inicializar COM para o thread. Se você criar um objeto COM em um STA thread, você não pode passar um ponteiro de interface para outro thread STA e chamada de saída nesse ponteiro. Como chamadas para objetos STA deveriam ser serializado, COM isso impõe permitindo somente um segmento para chamar o objeto STA (o segmento de onde ele foi criado). Se o ponteiro de interface que você passar para o segundo thread STA é um ponteiro para um proxy, você receberá um erro HRESULT de 0x8001010E ou RPC_E_WRONG_THREAD (o aplicativo chamou uma interface que foi empacotada para um thread diferente). Se o ponteiro de interface é um ponteiro direto para o objeto, COM não irá impor a serialização, você não obterá o erro acima e será feita a chamada de método de interface. No entanto, esse é comportamento ainda ilegal em parte do cliente. Você ainda poderá chamar métodos no objeto STA de um thread STA diferente, desde que você fazer isso através de um proxy. Um proxy é uma cópia da interface que você obtém por meio de empacotamento/unmarshaling. Quando você faz uma chamada através do proxy, faz COM uma opção de thread e a chamada acaba de execução no contexto do segmento onde o objeto STA foi criado. Há três maneiras de empacotamento/desempacotar uma interface para outro thread STA:
ReferênciasPara obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft: 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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes 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 deste artigo
|






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


Voltar para o início
