我在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 <gl\gl.h> // Hlavičkový soubor pro OpenGL32 knihovnu
#include <gl\glu.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失敗」,「SHUTDOWN ERROR」,「SHUTDOWN ERROR」 - 類型爲「const char *」的參數與參數類型「LPCWSTR」不兼容 非常感謝響應。 Aulipe
您不能通過強制轉換將ANSI字符串轉換爲Unicode。它會編譯,但它不會工作。 –