вызов функций при отладке с Visual Studio 2005?

вы можете использовать что-то вроде этого

select count(A.product_id) from (select distinct product_id from product where product_id not in (1,2)) AS A;

здесь вы выбираете отличный product_id из таблицы product, где id продукта не равны 1 и 2, а затем создаете псевдоним для результата как A.

A действует как временная таблица, поэтому вам нужно использовать A.product_id для выбора.

Извините за плохой английский, но я надеюсь, что он отвечает требованию вопроса.

8
задан Jacob 13 December 2009 в 23:09
поделиться

7 ответов

Хорошо, Вот то, что я нашел
CXX0040 означает это"The C expression evaluator does not support implicit conversions involving constructor calls."
CXX0047 означает это"Overloaded functions can be called only if there is an exact parameter match or a match that does not require the construction of an object."

Столь объединенный это означает, что, Если я хочу вызвать функцию, ни один из аргументов не должен иметь неявное преобразование, и ни одному из аргументов не должна быть нужна конструкция.
"неявное преобразование" в этом контексте, кажется, включает тривиальные вещи как преобразование 'String' кому: 'const String&'.
"конструкция", кажется, включает тривиальную конструкцию копии. так передавая значением что-либо, что не является типом примитива, приведет к ошибке.

Таким образом, это в основном оставляет функции, которые берут только типы примитивов или указатели.
Я только что протестировал эту теорию успешно.

Таким образом, если Вы хотите смочь назвать метод из окна часов, добавьте перегрузку, которая берет только указатели, и примитивы и в окне часов передают аргументы соответственно. Передать объект, который не является примитивной передачей его адрес.

11
ответ дан 5 December 2019 в 15:27
поделиться

Окно часов ограничено контекстом, где Ваш текущий код, например, когда Ваш код вводит функцию, и Вы пытаетесь получить доступ к другой функции, которая скрыта от объема Вашей текущей функции, это не будет работать.

При вызове функции в окне часов удостоверьтесь, что это видимо и доступно от текущей области.

0
ответ дан 5 December 2019 в 15:27
поделиться

К моему знанию Вы не можете выполнить код из окна Watch при отладке неуправляемого C++. Это действительно работает на C# (и вероятно VB.NET и управляемый С++, но я не положителен относительно этого). Настолько, вероятно, это позволяет его, потому что это работает на некоторые языки, но не других.

0
ответ дан 5 December 2019 в 15:27
поделиться

Мы находим, что это работает очень бессистемным способом. Некоторые очень простые функции (включая функции членства) работа, обычно простые методы считывания свойства. Другие более комплексные функции не работают и дают ошибку.

Я никогда не мог различить точные правила...

0
ответ дан 5 December 2019 в 15:27
поделиться

Я не протестировал это, но я всегда думал, именно это непосредственное окно было для (выполнение кода)

Cameron

0
ответ дан 5 December 2019 в 15:27
поделиться

Это - окно "Immediate", которое Вы хотите. И Вы ограничены тем, что видимо от того, где Ваша текущая точка останова. Локальные переменные и функции на том классе (или globals)

0
ответ дан 5 December 2019 в 15:27
поделиться

По моему опыту, существуют некоторые недостатки с непосредственным окном. Вы не можете назвать функции членства своих классов, если классы прибывают из другого DLL, но получают вводящие в заблуждение сообщения об ошибках. Если что-нибудь находится в том же DLL (например, путем статичного соединения во всем другом материале), вызов участников довольно надежен. Но сложный материал может или не может работать, как упомянуто другими.

0
ответ дан 5 December 2019 в 15:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: