MessageBox OS. независимый

Я хочу создать функцию Assert, которая отображает сообщение в новом окне, не открывая консоль. Функция должна быть независимой от O.S и не использовать внешние библиотеки c ++, если это возможно.

#include <string>
#include <sstream>
#ifdef WIN32
#include <windows.h>    // include windows header, for Windows Based Sistems.
#else
// ...
#endif

void Assert (bool cond,const char* file,int line,const char* desc)
{
if (cond) return;  // No Assertion.
#ifdef WIN32
// Use MessageBox function to display the information.
// For Example ...
std::stringstream st;
st << "There Was An Error At Runtime ! \n";
st << "File: " << file << "\n";
st << "Line: " << line << "\n";
st << "Description: " << desc << "\n";
st << "Do You Want To Continue Running the Application?\n";
if (MessageBox (NULL,"Unexpected Error", str.str ().c_str (), MB_YESNO) == IDNO)
exit (-1);
#else
// Do Something, but in Unix Base Systems.
#endif
}
#define assert(condition,description)  \
__assert__ (condition,__FILE__,__LINE__,description)

Нужен код C ++ для вывода MessageBox в другой O.S

-1

Решение

Стандарт C ++ не включает операции с графическим интерфейсом. Вы будут необходимо использовать внешние библиотеки, предоставляющие сервисы GUI для платформ, которые вы хотите.

Так что то, о чем вы просите, невозможно. Сожалею.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]