2012-10-05 12 views
2

Possible Duplicate:
How to use c# Dll in vc++?Comment ajouter C# dll dans l'application console Visual C++?

J'ai créé une classe dans le c pointu et fait la DLL de la classe maintenant je veux utiliser les méthodes dans le fichier DLL dans mon projet VC++.

Je sais comment ajouter le fichier .lib dans le projet VC++, mais comment ajouter un fichier DLL dans VC++ projet, je ne sais pas.

Je veux créer l'objet de la classe que je définis dans la DLL dans mon projet VC++ et à travers l'objet que je veux accéder à ses méthodes.

Quand j'ai essayé et j'obtenu l'erreur suivante:

support.microsoft.com/kb/828736 error "referenced assembly entlibcontrib.data.mysql does not have strong name" 

S'il vous plaît me guider à travers cela.

+1

Copie possible de http://stackoverflow.com/q/980808/796036 –

+4

_ "Veuillez me guider à travers cela." _ - fait des recherches? Qu'avez-vous trouvé? – CodeCaster

+1

@CodeCaster i tryed et j'ai eu cette erreur http://support.microsoft.com/kb/828736 « entlibcontrib.data.mysql de montage référencé ne porte pas de nom fort » – Ajinkya

Répondre

2

Gardez à l'esprit pour rendre la DLL visible COM et suivez this guide. Pour la visibilité, vous pouvez soit modifier le AssemblyInfo.cs et ajouter [assembly: ComVisible(true)] ou via l'éditeur de propriété intégré de Visual Studio.

+0

@Christianlvicevic Monsieur je l'ai fait ce qui est donné en lien ci-dessus, mais quand je l'ai fait RegAsm.exe mon .dll sous le titre "Enregistrer la DLL gérée pour COM ou avec C++ natif" je reçois "RegAsm: warning RA0000: Aucun type n'a été enregistré" – Ajinkya

+1

Sir j'ai obtenu le "Types enregistrés avec succès" mais il n'y a pas de fichier .tlb comme dit sous le titre "Appeler la DLL managée du code C++ natif" sous "7" point – Ajinkya

+0

C: \ Documents and Settings \ Administrateur \ Bureau \ NiproDAAB \ IISWebFrameworkDAAB \ bi n \ Release> RegAsm.exe IISWebFrameworkDAAB.dll Microsoft (R) Utilitaire d'enregistrement de l'assembly .NET Framework 4.0.30319.1 Copyright (C) Microsoft Corporation 1998-2004. Tous les droits sont réservés. Types enregistrés avec succès – Ajinkya

0

votre C# dll besoin d'être attribut ComVisible

[assembly: ComVisible(true)] 

Pour plus d'informations voir here

Si vous êtes projet non géré, C++, vous devez utiliser COM Interop pour accéder à l'assemblage. Après quoi vous pouvez y accéder comme n'importe quel autre composant COM

+0

Sir j'ai fait ce qui est donné dans le lien ci-dessus mais quand j'ai fait RegAsm.exe My.dll sous la rubrique "Enregistrer la DLL managée pour COM ou avec C++ natif" je reçois "RegAsm: warning RA0000: Aucun type n'a été enregistré " – Ajinkya

+0

Monsieur j'ai eu les" Types enregistrés avec succès "mais il n'y a pas.tlb fichier comme indiqué sous le titre "Appeler la DLL managée du code C++ natif" sous "7" point – Ajinkya

+1

je l'ai fait C: \ Documents and Settings \ Administrateur \ Bureau \ NiproDAAB \ IISWebFrameworkDAAB \ bi n \ Release> RegAsm.exe IISWebFrameworkDAAB.dll Utilitaire d'enregistrement de l'assembly .NET Framework Microsoft (R) 4.0.30319.1 Copyright (C) Microsoft Corporation 1998-2004. Tous les droits sont réservés. Types enregistrés avec succès – Ajinkya

Questions connexes