Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Este artigo passo a passo descreve como chamar uma DLL gerenciada do código C++ nativo. Para fazer isso, criar uma DLL gerenciada simples usando o Microsoft Visual translation from VPE for Csharp .NET ou Microsoft Visual translation from VPE for Csharp 2005 e chame essa DLL gerenciada do código C++ nativo.
Para criar uma DLL gerenciada simples que tem um método público para adicionar dois números e retornar o resultado, execute essas etapas:
Inicie o Microsoft Visual Studio .NET ou Microsoft Visual Studio 2005.
No menu arquivo , aponte para novo e, em seguida, clique em Project . A caixa de diálogo New Project é aberta.
Em Project Types , clique em projetos translation from VPE for Csharp Visual .
Observação No Visual Studio 2005, clique em translation from VPE for Csharp Visual em Tipos de projeto .
Em modelos , clique em Class Library .
Na caixa de texto nome , digite sManagedDLL e, em seguida, clique em OK .
Abra o arquivo Class1.cs no modo de exibição código.
Para declarar uma interface pública que possui um método para adicionar dois números, adicione o seguinte código para o file:
// Interface declaration.
public interface ICalculator
{
int Add(int Number1, int Number2);
};
Para implementar essa interface pública em uma classe, adicione o código seguinte à implementação de interface de file:
// Interface implementation.
public class ManagedClass:ICalculator
{
public int Add(int Number1,int Number2)
{
return Number1+Number2;
}
}
Clique em Iniciar e, em seguida, aponte para programas .
Se você estiver usando o Microsoft Visual Studio .NET 2003, aponte para Microsoft Visual Studio .NET 2003 e, em seguida, aponte para Visual Studio .NET Tools . Se você estiver usando o Microsoft Visual Studio .NET 2002, aponte para Microsoft Visual Studio .NET e, em seguida, aponte para Visual Studio .NET Tools . Se você estiver usando o Visual Studio 2005, aponte para Microsoft Visual Studio 2005 e, em seguida, aponte para Visual Studio 2005 Tools .
Se você estiver usando o Visual Studio .NET 2003, clique em Prompt de comando do Visual Studio .NET 2003 para abrir um prompt de comando do Visual Studio .NET. Se você estiver usando o Visual Studio .NET 2002, clique em Visual Studio .NET Command Prompt para abrir um Visual Studio.NET prompt de comando. Se você estiver usando o Visual Studio 2005, clique em prompt de comando do Visual Studio 2005 para abrir um prompt de comando do Visual Studio 2005.
Para criar um nome de alta segurança para sua biblioteca de classe, digite o seguinte comando no prompt de comando Visual Studio .NET:
sn.exe -k MyKeyFile.SNK
Copie o arquivo MyKeyFile.SNK para a pasta de projeto.
Clique duas vezes o arquivo AssemblyInfo.cs para abrir o arquivo no Solution Explorer.
Substituir as seguintes linhas de código na AssemblyInfo.cs arquivo
Registrar a DLL gerenciada para uso com ou com C++ nativo
Para usar a DLL gerenciada com ou com C++ nativo, você deve registrar as informações de assembly de sua DLL no registro do Windows. Para fazer isso, execute as seguintes etapas:
Clique em Iniciar e, em seguida, aponte para programas .
Se você estiver usando o Microsoft Visual Studio .NET 2003, aponte para Microsoft Visual Studio .NET 2003 e, em seguida, aponte para Visual Studio .NET Tools . Se você estiver usando o Microsoft Visual Studio .NET 2002, aponte para Microsoft Visual Studio .NET e, em seguida, aponte para Visual Studio .NET Tools . Se você estiver usando o Visual Studio 2005, aponte para Microsoft Visual Studio 2005 e, em seguida, aponte para Visual Studio 2005 Tools
Se você estiver usando o Visual Studio .NET 2003, clique em Prompt de comando do Visual Studio .NET 2003 para abrir um prompt de comando do Visual Studio .NET. Se você estiver usando o Visual Studio .NET 2002, clique em Visual Studio .NET Command Prompt para abrir um Visual Studio.NET prompt de comando. Se você estiver usando o Visual Studio 2005, clique em prompt de comando do Visual Studio 2005 para abrir um prompt de comando do Visual Studio 2005.
No prompt de comando Visual Studio .NET ou Visual Studio 2005, altere o caminho diretório da pasta que contém o DLL gerenciada.
Para registrar as informações de assembly de sua DLL gerenciada no registro do Windows e para criar uma biblioteca de tipos correspondente, execute o seguinte comando no prompt de comando Visual Studio .NET:
Para chamar a DLL gerenciada que você criou do C++ nativo código, execute essas etapas:
Inicie o Visual Studio .NET ou Visual Studio 2005.
No menu arquivo , aponte para novo e, em seguida, clique em Project .
Se você estiver usando o Visual C++ .NET 2003, clique em Projetos do Visual c++ em Project Types e clique em Projeto de console do Win32 em modelos . Se você estiver usando o Visual C++ .NET 2002, clique em Projetos do Visual c++ em Project Types e clique em Projeto Win32 em modelos . Se você estiver usando o Visual C++ 2005, clique em Visual C++ em Tipos de projeto e clique em Projeto Win32 em modelos
Na caixa de texto nome , digite CPPClient e, em seguida, clique em OK .
Se você estiver usando o Visual C++ .NET 2003 ou Visual C++ 2005, clique em Concluir . Se você estiver usando o Visual C++ .NET 2002, clique em Configurações do aplicativo , clique em Aplicativo de console e em seguida, clique em Concluir .
Abra o arquivo CPPClient.cpp no modo de exibição código.
Para importar a biblioteca de tipos RegAsm.exe gera, adicione o código a seguir para o file:
// Import the type library.
#import "..\ManagedDLL\bin\Debug\ManagedDLL.tlb" raw_interfaces_only
alterar o caminho da biblioteca de tipos se o caminho no seu computador for diferente desse caminho.
Para declarar o namespace para usar, adicione o código a seguir ao arquivo CPPClient.cpp:
using namespace ManagedDLL;
Para chamar a DLL gerenciada, adicione o seguinte código para a função _tmain :
// Initialize COM.
HRESULT hr = CoInitialize(NULL);
// Create the interface pointer.
ICalculatorPtr pICalc(__uuidof(ManagedClass));
long lResult = 0;
// Call the Add method.
pICalc->Add(5, 10, &lResult);
wprintf(L"The result is %d", lResult);
// Uninitialize COM.
CoUninitialize();
return 0;
// Class1.cs
// A simple managed DLL that contains a method to add two numbers.
using System;
namespace ManagedDLL
{
// Interface declaration.
public interface ICalculator
{
int Add(int Number1, int Number2);
};
// Interface implementation.
public class ManagedClass:ICalculator
{
public int Add(int Number1,int Number2)
{
return Number1+Number2;
}
}
}
Cliente C++
// CPPClient.cpp: Defines the entry point for the console application.
// C++ client that calls a managed DLL.
#include "stdafx.h"
#include "tchar.h"
// Import the type library.
#import "..\ManagedDLL\bin\Debug\ManagedDLL.tlb" raw_interfaces_only
using namespace ManagedDLL;
int _tmain(int argc, _TCHAR* argv[])
{
// Initialize COM.
HRESULT hr = CoInitialize(NULL);
// Create the interface pointer.
ICalculatorPtr pICalc(__uuidof(ManagedClass));
long lResult = 0;
// Call the Add method.
pICalc->Add(5, 10, &lResult);
wprintf(L"The result is %d\n", lResult);
// Uninitialize COM.
CoUninitialize();
return 0;
}
Observação você deve adicionar o common language runtime oferecem suporte a compilador opção ( / CLR: oldSyntax ) no Visual C++ 2005 a compilar com êxito este exemplo de código. Para fazer isso, execute as seguintes etapas:
Clique em projeto e, em seguida, clique em propriedades ProjectName .
Observação ProjectName representa o nome do projeto.
Expanda Configuration Properties e, em seguida, clique em Geral .
Clique para selecionar Common Language Runtime suporte, sintaxe antiga (/ CLR: oldSyntax) no projeto oferece suporte a Common Language Runtime definindo no painel à direita, clique em Aplicar e em seguida, clique em OK .
Para obter mais informações sobre o common language runtime oferece suporte às opções de compilador, visite o seguinte site:
IMPORTANTE: 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: 828736
(http://support.microsoft.com/kb/828736/en-us/
)
Quanto esforço foi necessário para seguir os procedimentos deste artigo?
Muito baixo
Baixo
Moderado
Alto
Muito alto
O que podemos fazer para melhorar essa informação?
Para proteger sua privacidade, não inclua informações de contato em seus comentários.
Obrigado! Seus comentários são usados para nos ajudar a aperfeiçoar o conteúdo de suporte. Para obter mais opções de ajuda, visite a Home Page de Ajuda e Suporte.