Диагностические сообщения
От: kolobok55  
Дата: 19.08.11 20:48
Оценка:
стандартная функция assert(bool logic), вызыает диагностическое сообщение, которое показывает строку в исходниках, а можно ли стандартными средствами вывести окно с произвольным текстом наподобие assert&
Re: Диагностические сообщения
От: LaptevVV Россия  
Дата: 20.08.11 11:18
Оценка:
Здравствуйте, kolobok55, Вы писали:

K>стандартная функция assert(bool logic), вызыает диагностическое сообщение, которое показывает строку в исходниках, а можно ли стандартными средствами вывести окно с произвольным текстом наподобие assert?

Это типа MessageBox(), что ли?
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: Диагностические сообщения
От: kolobok55  
Дата: 21.08.11 07:53
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Здравствуйте, kolobok55, Вы писали:


K>>стандартная функция assert(bool logic), вызыает диагностическое сообщение, которое показывает строку в исходниках, а можно ли стандартными средствами вывести окно с произвольным текстом наподобие assert?

LVV>Это типа MessageBox(), что ли?

Да, только, насколько я понимаю, для его использования мне необходимо подключать windows.h, assert этого не делает или я ошибась.

Меня смущает привязка к конкретной платформе (или хотелось бы решение [хотябы для linux, mac, windows)
Re[3]: Диагностические сообщения
От: fk0 Россия https://fk0.name
Дата: 21.08.11 09:26
Оценка:
Здравствуйте, kolobok55, Вы писали:

K>>>стандартная функция assert(bool logic), вызыает диагностическое сообщение, которое показывает строку в исходниках, а можно ли стандартными средствами вывести окно с произвольным текстом наподобие assert?

LVV>>Это типа MessageBox(), что ли?
K>Да, только, насколько я понимаю, для его использования мне необходимо подключать windows.h, assert этого не делает или я ошибась.
K>Меня смущает привязка к конкретной платформе (или хотелось бы решение [хотябы для linux, mac, windows)

#include <stdio.h>
fputs("любая херня\n", stderr);

Стандартней некуда. Считай ГОСТ.
Re[4]: Диагностические сообщения
От: kolobok55  
Дата: 21.08.11 09:57
Оценка:
Здравствуйте, fk0, Вы писали:

fk0>Здравствуйте, kolobok55, Вы писали:


K>>>>стандартная функция assert(bool logic), вызыает диагностическое сообщение, которое показывает строку в исходниках, а можно ли стандартными средствами вывести окно с произвольным текстом наподобие assert?

LVV>>>Это типа MessageBox(), что ли?
K>>Да, только, насколько я понимаю, для его использования мне необходимо подключать windows.h, assert этого не делает или я ошибась.
K>>Меня смущает привязка к конкретной платформе (или хотелось бы решение [хотябы для linux, mac, windows)

fk0> #include <stdio.h>

fk0> fputs("любая херня\n", stderr);

fk0> Стандартней некуда. Считай ГОСТ.


Неа, в MFC не проходит... (вообще не окон ничего не вызывает...)
Предвосхищая всякие MessageBox, скажу что библиотека которая у меня есть может компилироваться как с консольным приложением так и с оконным windows, в перспективе с linux.
Поэтому, хочется универсальное и простое решение.
Re[3]: Диагностические сообщения
От: LaptevVV Россия  
Дата: 21.08.11 12:00
Оценка:
Здравствуйте, kolobok55, Вы писали:

K>>>стандартная функция assert(bool logic), вызыает диагностическое сообщение, которое показывает строку в исходниках, а можно ли стандартными средствами вывести окно с произвольным текстом наподобие assert?

LVV>>Это типа MessageBox(), что ли?
K>Да, только, насколько я понимаю, для его использования мне необходимо подключать windows.h, assert этого не делает или я ошибась.
K>Меня смущает привязка к конкретной платформе (или хотелось бы решение [хотябы для linux, mac, windows)
Тогда Qt тебе в руки — и вперед.
Qt — кроссплатформенная библиотека, работает практически на всем. И GUI есть, и фреймворк весьма мощный, и среда есть: QtCreator.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[4]: Диагностические сообщения
От: Аноним  
Дата: 21.08.11 21:48
Оценка:
Здравствуйте, fk0, Вы писали:

fk0> #include <stdio.h>

fk0> fputs("любая херня\n", stderr);
fk0> Стандартней некуда. Считай ГОСТ.

Стандартнее perror("Error msg.");
Re[5]: Диагностические сообщения
От: fk0 Россия https://fk0.name
Дата: 22.08.11 05:19
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, fk0, Вы писали:


fk0>> #include <stdio.h>

fk0>> fputs("любая херня\n", stderr);
fk0>> Стандартней некуда. Считай ГОСТ.
А>Стандартнее perror("Error msg.");

Они из одного стандарта. К тому же оно содержимое errno ещё выводит, что не всегда нужно.
Re[5]: Диагностические сообщения
От: fk0 Россия https://fk0.name
Дата: 22.08.11 05:23
Оценка:
Здравствуйте, kolobok55, Вы писали:

fk0>> #include <stdio.h>

fk0>> fputs("любая херня\n", stderr);
fk0>> Стандартней некуда. Считай ГОСТ.
K>Неа, в MFC не проходит... (вообще не окон ничего не вызывает...)

Оно в "стандартный файл ошибок" выводит (в консоль, если не перенаправлено). Куда оно там в windows попадает для оконных программ -- видимо в никуда, если насильно не перенаправить.

K>Предвосхищая всякие MessageBox, скажу что библиотека которая у меня есть может компилироваться как с консольным приложением так и с оконным windows, в перспективе с linux.

K>Поэтому, хочется универсальное и простое решение.

Для оконных windows при старте программы собственный stderr перенаправить в pipe, его же читать в другом потоке и показывать по 10 MessageBox на каждую выведенную строчку, до озверения юзера.

Для linux и так сойдёт (там stderr в никуда не девается, и там юзеры умеют программы из терминала запускать).
Re: Диагностические сообщения
От: kolobok55  
Дата: 22.08.11 06:55
Оценка:
Здравствуйте, kolobok55, Вы писали:

K>стандартная функция assert(bool logic), вызыает диагностическое сообщение, которое показывает строку в исходниках, а можно ли стандартными средствами вывести окно с произвольным текстом наподобие assert&


Я так чувствую придется мне самому писать мини библеотечку для вывода сообщений и расширять по мере необохдимост для др. оперционок.

А может кто-нить уже такое делал?
Re[2]: Диагностические сообщения
От: usc.urich Россия  
Дата: 23.08.11 12:19
Оценка:
Здравствуйте, kolobok55, Вы писали:

K>Я так чувствую придется мне самому писать мини библеотечку для вывода сообщений и расширять по мере необохдимост для др. оперционок.

K>А может кто-нить уже такое делал?

Можешь использовать макросы __FILE__ __LINE__, а потом выводить куда тебе надо.
Если умеешь защищать программы, то умеешь их и ломать, но не наоборот.
Документация как секс — лучше любая, чем никакой.
Re: Диагностические сообщения
От: баг  
Дата: 25.08.11 12:29
Оценка:
Здравствуйте, kolobok55, Вы писали:

K>стандартная функция assert(bool logic), вызыает диагностическое сообщение, которое показывает строку в исходниках, а можно ли стандартными средствами вывести окно с произвольным текстом наподобие assert&

Судя по всему, вам дорога в одну из библиотек логов (logging library), а файлы и строки как уже подсказали, макросами.
Re: Диагностические сообщения
От: Alca Украина  
Дата: 26.08.11 06:36
Оценка:
Я так делал:
https://github.com/skynowa/xLib/blob/master/Source/Common/CxConsole.cpp
Re[2]: Диагностические сообщения
От: Alca Украина  
Дата: 26.08.11 06:42
Оценка:
http://stackoverflow.com/questions/263/gtk-implementation-of-messagebox
Re[3]: Диагностические сообщения
От: Alca Украина  
Дата: 26.08.11 06:44
Оценка:
#include <stdio.h>
#include <stdlib.h>

#if defined(WIN32) || defined(WINDOWS)

#include <windows.h>

void MsgBox(char *s){
MessageBox(0, s, "Message", 1);
}

#else

#include <unistd.h>

void MsgBox(char *s){
char cmd[1024];
sprintf(cmd, "xmessage -center \"%s\"", s);
if(fork()==0){
close(1); close(2);
system(cmd);
exit(0);
}
}
Re[4]: Диагностические сообщения
От: kolobok55  
Дата: 26.08.11 06:46
Оценка:
Здравствуйте, Alca, Вы писали:

A>#include <stdio.h>

A>#include <stdlib.h>

A>#if defined(WIN32) || defined(WINDOWS)


A>#include <windows.h>


A>void MsgBox(char *s){

A> MessageBox(0, s, "Message", 1);
A>}

A>#else


A>#include <unistd.h>


A>void MsgBox(char *s){

A> char cmd[1024];
A> sprintf(cmd, "xmessage -center \"%s\"", s);
A> if(fork()==0){
A> close(1); close(2);
A> system(cmd);
A> exit(0);
A> }
A>}
A>

A>

Спасибо, приблизительно так я и сделал, тока еще добавил выводить в консоль если приложение консольное.
Re[5]: Диагностические сообщения
От: Alca Украина  
Дата: 26.08.11 06:52
Оценка:
Вот еще http://marked-prog.blogspot.com/2011/03/x-window-system-messagebox-linux.html
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.