Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Fala galera! :D
Hoje vou pedir uma ajuda aqui!
To fazendo umas paradas de classes aqui no Code::Blocks, é basicamente um "remake" de umas classes de janelas Win32 que eu tinha feito tempos atrás, só que agora com uma diferença: a tranqueira não funciona :P
Não sei o que to fazendo errado aqui, mas o CreateWindowEx retorna NULL, e ao adicionar uma função de verificar erros que eu achei na MSDN (copiei e colei também pra debugar essa bagaça), chamando essa função logo no início do programa, antes da instância da classe da janela, ou seja, a primeira instrução da função WinMain, ele me retorna o erro 2: O sistema não pôde encontrar o arquivo especificado.
Já to quebrando a cabeça com isso aqui, não sei o que eu faço pra essa coisa funcionar. Já esgotei todas as minhas ideias. Vou copiar e colar como está o arquivo principal:
#include "SimpWin/SimpWin.h"
#include <stdio.h>
// Make the class name into a global variable
char szClassName[] = "WindowsApp";
void ErrorExit(LPTSTR lpszFunction)
{
// Retrieve the system error message for the last-error code
LPVOID lpMsgBuf;
LPVOID lpDisplayBuf;
DWORD dw = GetLastError();
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
dw,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR) &lpMsgBuf,
0, NULL );
// Display the error message and exit the process
lpDisplayBuf = (LPVOID)LocalAlloc(LMEM_ZEROINIT,
(lstrlen((LPCTSTR)lpMsgBuf) + lstrlen((LPCTSTR)lpszFunction) + 40) * sizeof(TCHAR));
sprintf((char*)lpDisplayBuf,
TEXT("%s failed with error %d: %s"),
lpszFunction, (int)dw, (char*)lpMsgBuf);
MessageBox(NULL, (LPCTSTR)lpDisplayBuf, TEXT("Error"), MB_OK);
LocalFree(lpMsgBuf);
LocalFree(lpDisplayBuf);
ExitProcess(dw);
}
LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain (HINSTANCE hThisInstance,
HINSTANCE hPrevInstance,
LPSTR lpszArgument,
int nFunsterStil)
{
ErrorExit(TEXT("LOL"));
Window* win = Window::CreateWindowClass(hThisInstance, szClassName, WindowProcedure);
if(!win->Register())
{
return 0;
}
win->Show(nFunsterStil);
int res = win->HandleMessages();
delete win;
return res;
}
/* This function is called by the Windows function DispatchMessage() */
LRESULT CALLBACK WindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
return DefWindowProc (hwnd, message, wParam, lParam);
}Agradeço quem puder me ajudar \o
Se precisarem ver os códigos de algum dos métodos aí avisa... se eu for copiar tudo aqui vai ficar gigante demais
Carregando comentários...