Puis-je ajouter un point d'arrêt sur l'API CreateProcess de Windows dans Visual Studio comme je peux le faire dans Windbg?Puis-je ajouter un point d'arrêt sur CreateProcess dans VS
10
A
Répondre
15
Oui - Go "Debug/Nouveau point d'arrêt/Pause à la fonction ..." et collez ceci:
{,,kernel32.dll}[email protected]
dans la zone de fonction.
Cela suppose une construction Unicode - remplacez W
par A
pour les générations ANSI. Un peu d'explication: le morceau @40
fait partie de la convention d'appel stdcall, et donne le nombre d'octets de paramètres que prend la fonction. En win32, c'est presque toujours 4 fois le nombre de paramètres. Le trait de soulignement fait également partie de la convention d'appel stdcall.
Une note connexe: parfois le nom de la fonction comme on le voit par le débogueur est différent de son vrai nom - voir ce billet de blog pour un exemple, et comment trouver le bon nom à utiliser: Setting a Visual Studio breakpoint on a Win32 API function in user32.dll
Questions connexes
- 1. Comment ajouter un point d'arrêt conditionnel dans Visual C++
- 2. type attendu sur un point dans vb.net?
- 3. Zoom sur un point dans C#
- 4. Dessiner un point sur l'écran
- 5. JQuery ajouter la classe sur le point actuel
- 6. Comment ajouter un ensemble standard d'instructions 'using' dans VS?
- 7. Ajouter un onglet à la boîte de dialogue "Ajouter une référence" dans VS?
- 8. Comment obtenir CreateProcess/CreateProcessW pour exécuter un processus dans un chemin> caractères MAX_PATH
- 9. Comment ajouter un style de mise au point à un ComboBox modifiable dans WPF
- 10. dessine un point sur linechart en flex
- 11. problème à partir d'un processus avec CreateProcess()
- 12. Mise au point sur un QDockWidget tabulé dans PyQt
- 13. Ajouter dynamiquement un contrôle ActiveX sans le concepteur VS
- 14. Compilation de code GWT avec un grand nombre de paramètres - limite de caractères sur CreateProcess?
- 15. Ajouter un dossier de solution pour VS 2008?
- 16. Add-in VS: bouton Ajouter un contexte sur les applications Web
- 17. Comment ajouter des pages ASP.NET personnalisées dans un point de partage
- 18. Comment calculer un point sur un axe pivoté?
- 19. Trouver un point dans un polygone complexe
- 20. "Ajouter une référence de service" échoue dans VS
- 21. Ajouter NAPDEF sur Nokia
- 22. Comment ajouter un imageView sur un tableViewController?
- 23. VS Setup Project: Ajouter Menu Démarrer lien vers un fichier dans un module de fusion
- 24. Restaurer à un point dans le temps
- 25. déplacer un point dans l'espace 3D
- 26. Faire pivoter un point par un autre point en 2D
- 27. Comment définir les paramètres régionaux pour un processus lancé par CreateProcess()
- 28. Comment activer la marge de point d'arrêt dans VS2010
- 29. comment ajouter un événement dans dataGrid dans C#
- 30. Comment calculer un point sur la circonférence d'un cercle?
Mieux vaut briser les deux. En raison du comportement générique non-const de CreateProcessW, même les applications Unicode peuvent appeler CreateProcessA. La macro CreateProcess ne masque pas les deux déclarations de fonction sous-jacentes afin qu'elles restent appelables. Cela s'applique également aux macros similaires pour d'autres paires de fonctions. – MSalters
Une chose supplémentaire à noter est que vous devez d'abord télécharger les symboles 'kernel32.dll'. Vous pouvez le faire à partir du menu contextuel dans Debug/Windows/Modules. – ulidtko
explication de la syntaxe {,,,} est ici: https://msdn.microsoft.com/en-us/library/wztycb7f(v=vs.100).aspx note que, pour une raison quelconque, l'article n'existe pas pour studio visuel supérieur à vs2010 –