Существует ли оператор TRACE для основного win32 C++?

Эта операция фактически предоставляется непосредственно пандами. Просто используйте функцию transpose() или T ( Справочник ).

Единственная строка, которую вы должны добавить:

df_transposed = df.T

8
задан EvilTeach 16 January 2009 в 20:43
поделиться

4 ответа

_RPTn работает отлично, хотя не совсем как удобный. Вот некоторый код, который воссоздает оператор MFC TRACE как функцию, позволяющую переменное количество аргументов. Также добавляет макрос TraceEx, который предварительно ожидает исходный файл и номер строки, таким образом, можно нажать назад к местоположению оператора.

Обновление: исходный код CodeGuru не скомпилировал бы для меня в режиме Release, таким образом, я изменил способ, которым операторы TRACE удалены для режима Release. Вот мой полный источник, который я поместил в Trace.h. Благодаря Thomas Rizos для оригинала:

// TRACE macro for win32
#ifndef __TRACE_H__850CE873
#define __TRACE_H__850CE873

#include <crtdbg.h>
#include <stdarg.h>
#include <stdio.h>
#include <string.h>

#ifdef _DEBUG
#define TRACEMAXSTRING  1024

char szBuffer[TRACEMAXSTRING];
inline void TRACE(const char* format,...)
{
    va_list args;
    va_start(args,format);
    int nBuf;
    nBuf = _vsnprintf(szBuffer,
                   TRACEMAXSTRING,
                   format,
                   args);
    va_end(args);

    _RPT0(_CRT_WARN,szBuffer);
}
#define TRACEF _snprintf(szBuffer,TRACEMAXSTRING,"%s(%d): ", \
                &strrchr(__FILE__,'\\')[1],__LINE__); \
                _RPT0(_CRT_WARN,szBuffer); \
                TRACE
#else
// Remove for release mode
#define TRACE  ((void)0)
#define TRACEF ((void)0)
#endif

#endif // __TRACE_H__850CE873
8
ответ дан 5 December 2019 в 09:26
поделиться

Из документов MSDN, Макросов для Создания отчетов:

Можно использовать _RPTn и _RPTFn макросы, определенные в CRTDBG.H, для замены использования printf операторов для отладки. Они макросы автоматически исчезают в Вашей сборке конечных версий, когда _DEBUG не определяется, таким образом, нет никакой потребности включить их в #ifdefs.

3
ответ дан 5 December 2019 в 09:26
поделиться

Существует также OutputDebugString. Однако это не будет удалено при компиляции выпуска.

3
ответ дан 5 December 2019 в 09:26
поделиться

Макросы трассировки, которые предоставляют сообщениям ссылку исходного кода, информацию стека вызовов во время выполнения и информацию о прототипе функции со значениями параметров:

Расширенная Трассировка: макросы Трассировки для Win32

1
ответ дан 5 December 2019 в 09:26
поделиться
Другие вопросы по тегам:

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