XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Общение> Hard & Soft
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
vladfaust

offline
Опыт: 12,714
Активность:
WndProc (C++)
WNDCLASS wc;
wc.lpfnWndProc = WndProc;
Ругается следующим образом:
error LNK2001: неразрешенный внешний символ ""long __stdcall WndProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WndProc@@YGJPAUHWND__@@IIJ@Z)"
Думаю, что связано с 64-битной версией Windows 7. Прошу помощи!
Старый 13.08.2012, 12:58
alexprey
познающий Unity
offline
Опыт: 68,501
Активность:
inadequate_, связано с тем, что он не видит реализации твоей WndProc. Скорее всего забыл подключить ссылку к нужной библиотеке или криво написал заголовочный файл и файл с кодом
Старый 13.08.2012, 13:03
vladfaust

offline
Опыт: 12,714
Активность:
alexprey, решение пустое. Win32 project.
#include <windows.h>

LRESULT __stdcall WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);

int __stdcall WinMain (HINSTANCE hInstance,
                       HINSTANCE hPrevInstance,
                       LPSTR lpCmdLine, int nCmdShow)
{
	WNDCLASS wc; // WNDCLASS - структура!
	wc.style = CS_OWNDC;
	wc.lpfnWndProc = WndProc;
	wc.cbClsExtra = 0;
	wc.cbWndExtra = 0;
	wc.hInstance = hInstance;
	wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
	wc.hCursor = LoadCursor(NULL, IDC_ARROW);
	wc.hbrBackground = (HBRUSH)(6);
	wc.lpszMenuName = NULL;
	wc.lpszClassName = L"class";
	
	RegisterClass(&wc);

	HWND hWnd = CreateWindow(L"class",L"заготовка программы",
                         WS_OVERLAPPEDWINDOW,
                         150,100,500,400,
                         NULL,NULL,hInstance,NULL);

	ShowWindow(hWnd, nCmdShow);
	UpdateWindow(hWnd);
	MSG msg;

	while (true)
	{
	  if (PeekMessage(&msg,hWnd,0,0,PM_REMOVE))
	  {
		if (msg.message == WM_QUIT)
		  break;

		TranslateMessage(&msg);
		DispatchMessage(&msg);
	  }
	}
}
Старый 13.08.2012, 13:10
alexprey
познающий Unity
offline
Опыт: 68,501
Активность:
inadequate_, собственно а где реализация то WndProc? ты её только объявил
LRESULT __stdcall WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
 return 0;
}
так должно работать
Старый 13.08.2012, 13:55
vladfaust

offline
Опыт: 12,714
Активность:
Хм. Почему-то при создании пустого решения и добавлении туда заголовочного файла (.h), инклуд этого самого файла не работает. Fatal error: file not found: lol.h.
Старый 13.08.2012, 14:47
alexprey
познающий Unity
offline
Опыт: 68,501
Активность:
inadequate_, как пишешь #include <lol.h>? если так, то ошибка понятна, так пишутся только системные инклюды, а так #include "lol.h" собственные
Старый 13.08.2012, 15:27
vladfaust

offline
Опыт: 12,714
Активность:
alexprey, спасибо!!
Старый 13.08.2012, 16:11
alexprey
познающий Unity
offline
Опыт: 68,501
Активность:
inadequate_, а говоришь что обладаешь знаниями C++ <_<
Старый 13.08.2012, 17:00
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 09:35.