2017-09-15 2 views
0

J'utilise l'écriture dans Visual Basic à l'aide de Visual Studio 2013 et d'essayer d'utiliser le debuger pour le code dans une DLL qui est en dehors du répertoire de travail. La DLL est un projet C++ et l'application principale est un projet VB.Utilisation de VB, VS 2013 Comment utiliser une DLL en dehors du répertoire de travail

Comment faire cela? En C++, il semble être simple mais pas avec VB.

Ci-dessous est purement arrière-plan. Je suis intéressé par la question ci-dessus en général et ce n'est que la dernière manifestation. L'histoire: Je suis en train de déboguer le programme VB et une DLL écrite en C++. J'ai copié la DLL dans le répertoire de travail du répertoire VB exe. Mais il me donne un outil de pointe au point de rupture dans le code source de DLL qui lit « point d'arrêt pas être frappé. Aucun symbole chargé de ce document. » J'essaie de comprendre si cela résout le problème. Si c'est le cas, c'est le cas. Si ce n'est pas le cas, ce n'est pas le cas.

+0

Seul le dernier paragraphe semble logique. Tous les points d'arrêt que vous définissez ne peuvent pas être armés jusqu'à ce que la DLL C++ native soit chargée par votre programme VB. Quelle que soit l'instruction qui doit être exécutée, généralement un appel à une méthode déclarée comme [DllImport] ou avec l'instruction Declare. Vous devez également activer le débogueur non géré. La fenêtre Debug> Windows> Modules du débogueur montre ce qui est chargé, si ce n'est pas dans la liste, un point d'arrêt ne peut pas fonctionner. –

+0

@Hans, vous avez 100% raison. Seul le dernier paragraphe a du sens. J'ai édité le premier paragraphe. Je n'ai pas précisé que j'essayais de faire entrer le débogueur dans la DLL (ce qui était le plus important!) J'espère que cela aide. Merci de votre aide. –

Répondre

0

pehaps vous devriez p-Invoke (enter link description here) pour faire un appel et que l'importation .dll. L'autre option serait d'enregistrer dll dans gac et de faire un wrapper com pour votre bibliothèque.

Vous devez également ajouter la bibliothèque à votre application .NET comme suit:

xcopy "$(SolutionDir)DLL\$(ConfigurationName)"\*.dll "$(TargetDir)"*.* /Y 

Projet -> Propriétés -> Compile -> Créer des événements -> commande événement après génération passe la commander.