#windows-7-x64 #visual-studio-debugging #mixed-code
#windows-7-x64 #visual-studio-debugging #смешанный код
Вопрос:
Недавно у меня возникла эта (странная) проблема. Мое приложение использует как C , так и C #, и я смог отлаживать и пошагово выполнять код либо в моих библиотеках DLL C , либо в моих сборках C #.
По какой-то причине я больше не могу добавлять точки останова в свой код на C #, потому что я не могу использовать мышь после достижения точки останова. Нажатие в любом месте (в Windows 7), похоже, на несколько секунд приостанавливает работу всей операционной системы, при этом медленно заполняется маленький зеленый индикатор выполнения там, где находится мышь. Когда я снова получаю контроль над мышью, кажется, что я нигде не нажимал. Я не могу нажать «остановить отладку», я не могу щелкнуть приложения на панели задач Windows, я ничего не могу сделать с помощью мыши (кроме зависания системы на несколько секунд).
Только когда я нажимаю F5 (продолжаю выполнение кода) и приложение запускается снова, я могу использовать мышь.
Примечание # 1: эта проблема также возникает, если я «подключаюсь к процессу» Примечание # 2: этого не происходит при отладке на C .
Есть идеи? Я понимаю, что это «неопределенный» вопрос о «неопределенной» проблеме… но на этом этапе любая помощь будет оценена.
Спасибо.
Комментарии:
1. Мой хрустальный шар говорит, что вы отлаживаете приложение, которое вызывало SetWindowsHookEx() для подключения мыши. Конечно, это идет не так, когда вы прерываете программу, Windows больше не может вызывать ваш обратный вызов hook. Он мирится с этим в течение нескольких секунд, прежде чем сдаться. Это «маленький зеленый индикатор выполнения»… необычно. При необходимости используйте удаленную отладку, чтобы обойти эту проблему.
2. Вау! Поздравляю, мистер Нострадамус! Именно это и происходило… Проблема заключалась в SetWindowsHookEx (или, я должен сказать, в его неправильном использовании нашим приложением). Извините, я не могу предоставить вам какой-либо «официальный кредит», поскольку у меня пока недостаточно привилегий. Считайте, что вы получили одобрение и одобрение! Еще раз спасибо!