消息框错误
Message Box error
我对C++消息框有一点问题。我正在创建OpenGL应用程序,在那里发现了一些错误。
// OpenGL knihovny
#pragma comment (lib,"opengl32.lib")
#pragma comment (lib,"glu32.lib")
#pragma comment (lib,"glaux.lib")
#include <windows.h> // Hlavičkový soubor pro Windows
#include <glgl.h> // Hlavičkový soubor pro OpenGL32 knihovnu
#include <glglu.h> // Hlavičkový soubor pro Glu32 knihovnu
#include <glaux.h> // Hlavičkový soubor pro Glaux knihovnu
//Globální proměnné
HDC hDC = NULL; // Privátní GDI Device Context
HGLRC hRC = NULL; // Trvalý Rendering Context
HWND hWnd = NULL; // Obsahuje Handle našeho okna
HINSTANCE hInstance; // Obsahuje instanci aplikace
bool keys[256]; // Pole pro ukládání vstupu z klávesnice
bool active = TRUE; // Ponese informaci o tom, zda je okno aktivní
bool fullscreen = TRUE; // Ponese informaci o tom, zda je program ve fullscreenu
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); // Deklarace procedury okna (funkční prototyp)
GLvoid ReSizeGLScene(GLsizei width, GLsizei height) // Změna velikosti a inicializace OpenGL okna
{
if (height == 0) // Zabezpečení proti dělení nulou
{
height = 1; // Nastaví výšku na jedna
}
glViewport(0, 0, width, height); // Resetuje aktuální nastavení
glMatrixMode(GL_PROJECTION); // Zvolí projekční matici
glLoadIdentity(); // Reset matice
gluPerspective(45.0f, (GLfloat)width / (GLfloat)height, 0.1f, 100.0f); // Výpočet perspektivy
glMatrixMode(GL_MODELVIEW); // Zvolí matici Modelview
glLoadIdentity(); // Reset matice
}
int InitGL(GLvoid) // Všechno nastavení OpenGL
{
glShadeModel(GL_SMOOTH); // Povolí jemné stínování (smooth shading)
glClearColor(0.0f, 0.0f, 0.0f, 0.5f); // Nastaví barvu pozadí na černou
glClearDepth(1.0f); // Nastavení hloubkového bufferu
glEnable(GL_DEPTH_TEST); // Povolí hloubkové testování
glDepthFunc(GL_LEQUAL); // Typ hloubkového testování
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); // Nejlepší perspektivní korekce
return TRUE; // Inicializace proběhla v pořádku
}
int DrawGLScene(GLvoid)// Vykreslování
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Smaže obrazovku a hloubkový buffer
glLoadIdentity(); // Reset matice
// Sem můžete kreslit
return TRUE; // Vykreslení proběhlo v pořádku
}
GLvoid KillGLWindow(GLvoid) // Zavírání okna
{
if (fullscreen) // Jsme ve fullscreenu?
{
ChangeDisplaySettings(NULL, 0); // Přepnutí do systému
ShowCursor(TRUE); // Nastaví zobrazení kurzoru
}
if (hRC)// Máme rendering kontext?
{
if (!wglMakeCurrent(NULL, NULL)) // Jsme schopni oddělit kontexty?
{
MessageBox(NULL, "Release Of DC And RC Failed.", "SHUTDOWN ERROR", MB_OK | MB_ICONINFORMATION);
}
if (!wglDeleteContext(hRC)) // Jsme schopni smazat RC?
{
MessageBox(NULL, "Release Rendering Context Failed.", "SHUTDOWN ERROR", MB_OK | MB_ICONINFORMATION);
}
hRC = NULL; // Nastaví hRC na NULL
}
代码未完成,但我的消息框有问题。
if (hRC)// Máme rendering kontext?
{
if (!wglMakeCurrent(NULL, NULL)) // Jsme schopni oddělit kontexty?
{
MessageBox(NULL, "Release Of DC And RC Failed.", "SHUTDOWN ERROR", MB_OK | MB_ICONINFORMATION);
}
if (!wglDeleteContext(hRC)) // Jsme schopni smazat RC?
{
MessageBox(NULL, "Release Rendering Context Failed.", "SHUTDOWN ERROR", MB_OK | MB_ICONINFORMATION);
}
hRC = NULL; // Nastaví hRC na NULL
}
我在消息框方面遇到问题。"释放渲染上下文失败.","DC 和 RC 释放失败.","关机错误","关机错误" - 类型为"const char*"的参数与类型为"LPCWSTR"的参数不兼容非常感谢您的回复。奥利佩
在
字符串文本之前添加L
前缀。
MessageBox(NULL, L"Release Of DC And RC Failed.", L"SHUTDOWN ERROR", MB_OK | MB_ICONINFORMATION);
看起来您正在以 Unicode 模式进行编译(这可能是个好主意)。这意味着Windows API函数将期望宽wchar_t
字符串(以Unicode UTF-16形式)而不是ANSI char
字符串。
您可以通过以 L 为前缀来创建宽字符串文字 - 例如 L"Hello world"
.
试试这个:
MessageBox(NULL, (LPTSTR)"TEXT" , (LPTSTR)"TEXT", MB_OK);
相关文章:
- C++错误消息*成员参考.**初学者*
- 如何通过参数抛出错误消息
- glad 导致 glfwSwapBuffers 返回错误消息
- FindPackageHandleStandardArgs.cmake:137 的 CMake 错误(消息):找不到 Boost (缺少:正则表达式)(找到合适的版本"1.72.0",
- 如何接受 [ENTER] 键作为无效输入并发送错误消息
- 重新定义预定义的 errno 错误消息 (E2BIG)
- SDL 映像:无法打开映像,仅显示错误消息
- 错误消息:使用"string* +="后"no match for 'operator+='"
- 错误消息"expected expression"....有人知道它为什么这么说吗?
- 在 Eclipse: "error: no match for 'operator='" 中获取错误消息
- GCC 警告和 gcc 错误消息之间的区别
- 为 c++ cin 上的输入数无效生成错误消息
- 来自带有mbedtls TLS的Mongoose Web服务器的错误消息
- 如何使用realsense摄像头调试ROS错误消息
- C++ 概念 - 需要括号中的概念会导致 2 条冲突的错误消息
- 编译器收到错误消息(textc.exe已停止)
- 结构数组的构造函数错误,错误消息:没有构造函数实例与参数列表匹配
- 使用 c++/WinRT Direct3D UWP Game DR 模板 Direct X11 的错误消息
- max_element() 给出非常奇怪的错误消息
- 不断收到错误消息,并非所有控制路径都返回值