Main Photo Album Fair Tail Programming GuestBook RussianRussian

Отладка приложений с использованием LogView

Способ №1. Обыкновенный.

В программу, из которой требуется кидать в лог сообщения включаем файл Log2View.h (находится в LogView.API)
при необходимости включения логгирования:
#define LOGGING_ON
#include <Log2View.h>
В программе можно использовать следующие макросы:
// Вывод форматированной строки в лог. В этом варианте не понимает формат типа %f		
LOG2VIEW(LPCTSTR format, ...)

// Вывод координат RECT'a, szName наименование прямоугольника в виде '%s left=%d top=%d right=%d bottom=%d'		
LOG2VIEW_RECT(LPCTSTR szName, const RECT rc)

// Вывод GUID'a в текстовом виде, szName наименование также выводит ProgID если это возможно		
LOG2VIEW_GUID(LPCTSTR szName, const GUID guid)

// Вывод сообщения для GetlastError		
LOG2VIEW_LASTERROR()

// Вывод RGB по компонентам		
LOG2VIEW_RGB(cr)
Пример использования (см. TestLogView)
// TestLogView.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

int _tmain(int argc, _TCHAR* argv[])
{
  LOG2VIEW(TEXT("Start TestLogview...\r\nargc=%d"), argc);
  for (int i = 0; i < argc; i++)
    LOG2VIEW(argv[i]);
  return 0;
}

Способ №2. Свой собственный.

Делаем все тоже самое что в способе №1 реализовано макросами. Алгоритм приблизительно следующий:

  1. Находим окно с заголовком LogView
  2. Формируем буфер с текстом
  3. Заполняем структуру COPYDATASTRUCT
  4. Отправляем сообщение WM_COPYDATA найденному окну
Пример кода:
HWND hwndLog = FindWindow(NULL, TEXT("LogView")); // окно LogView
if (hwndLog)
{ 
  // нашли
  TCHAR *buffer = TEXT("Test Message!!!\r\n"); // если не добавим \r\n, следующее сообщение будет на той же строке, некрасиво
  COPYDATASTRUCT str;
#ifdef _UNICODE
    str.dwData = 1; // 1 если текст в буффере Unicode
#else
    str.dwData = 0; // 0 если текст в буффере ANSI
#endif
    str.cbData = (lstrlen(buffer)+1)*sizeof(TCHAR); // размер буффера в байтах
    str.lpData = (void *)buffer; // Буффер
    ::SendMessage(hwndLog, WM_COPYDATA, NULL, (LPARAM)&str); // Отправляем
}

Способ №3. VBScript, JScript etc.

Можно пользоваться LogView и в скриптах. Для этого регистрим сервер LogViewSrv.dll. Создаем в скрипте объект с классом LogView.LogWindow. У этого объекта имеется единственный метод Log(BSTR LogString), параметр LogString строка для вывода в лог.
Пример кода:
set objLogger = CreateObject("LogView.LogWindow")
objLogger.Log("Hello from script!!!!")

Предолжения и замечания принимаются, пользуйтесь на здоровье!

Top of Page
Programming


ICQ UIN:my icq63179813 (Add to contact list, Message for Me)

e-mail:  Alexander D. Alexeev

© 2002-2006 Alexander D. Alexeev
Hosted by uCoz