Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.01.2012, 10:12   #1
pranki
 
Регистрация: 01.01.2012
Сообщений: 4
По умолчанию Изучение WinApi

Приветствую. Начал изучение WinApi и столкнулся с рядом ошибок при попытки компиляции. Помогите решить/понять ошибки.
Код:

Код:
#include "stdafx.h"
#include <windows.h>

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM , LPARAM);

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
	HWND hMainWnd;
	char szClassName[] = "MyClass";

	MSG msg;
	WNDCLASSEX wc ;
	//заполняем структуру класса окна

	wc.cbSize = sizeof(wc);
	wc.style = CS_HREDRAW | CS_VREDRAW;
	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)GetStockObject(WHITE_BRUSH);
	wc.lpszMenuName = NULL ;
	wc.lpszClassName = szClassName;
	wc.hIconSm = LoadIcon(NULL , IDI_APPLICATION);
	// Регестрируем класс окна
	if(!RegisterClassEx(&wc))
	{
		MessageBox(NULL, "Cannot register class", "Error." , MB_OK);
	}
	//Создаем основное окно приложения
	hMainWnd = CreateWindow(szClassName,  "Hello Application", WS_OVERLAPPEDWINDOW,
		CW_USEDEFAULT, 0 , CW_USEDEFAULT , 0 ,
		(HWND)NULL, (HMENU)NULL,
		(HINSTANCE)hInstance, NULL);
		
		
	if(!hMainWnd) 
	{
		MessageBox(NULL, "Cannot create main windows", "Error" , MB_OK);
		return 0 ;
	}

	//показываем наше окно
	ShowWindow(hMainWnd, nCmdShow);
	UpdateWindow(hMainWnd);


	//цикл обработки сообщений до закрытия приложения
	while (GetMessage(&msg, NULL , 0 , 0))
	{
		TranslateMessage(&msg);
		DispatchMessage(&msg);
	}
	return msg.wParam;
	//====================================================================



}

LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg , WPARAM wParam , LPARAM lParam)
{
	HDC hDC;
	PAINTSTRUCT ps ;
	RECT rect;

	switch (uMsg)
	{
	case WM_PAINT:
		hDC = BeginPaint(hWnd, &ps);
		GetClientRect(hWnd, &rect);
		DrawText(hDC, "Hello World!", - 1 ,&rect ,
			DT_SINGLELINE | DT_CENTER | DT_VCENTER );

		EndPaint(hWnd, &ps);
		break;

	case WM_CLOSE:
		DestroyWindow(hWnd);
		break;

	case WM_DESTROY:
		PostQuitMessage(0);
		break;
	default:
	return DefWindowProc(hWnd, uMsg , wParam ,lParam);
    }
}
Ошибки:
Error 2 error LNK2005: _WinMain@16 already defined in Hello1.obj C:\Users\pranki\documents\visual studio 2010\Projects\Hello1\Hello1\Hello2. obj
Error 3 error LNK2005: "long __stdcall WndProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WndProc@@YGJPAUHWND__@@IIJ@Z) already defined in Hello1.obj C:\Users\pranki\documents\visual studio 2010\Projects\Hello1\Hello1\Hello2. obj
Error 4 error LNK1169: one or more multiply defined symbols found C:\Users\pranki\documents\visual studio 2010\Projects\Hello1\Debug\Hello1.e xe 1

Последний раз редактировалось pranki; 01.01.2012 в 10:55. Причина: C предыдущими ошибками разобрался , теперь новые :(
pranki вне форума Ответить с цитированием
Старый 01.01.2012, 11:40   #2
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

Hello1 и Hello2 у тебя в одном и том же проекте. Получается, что в одной проге две штуки WinMain и две штуки WndProc.
Somebody вне форума Ответить с цитированием
Старый 01.01.2012, 11:44   #3
pranki
 
Регистрация: 01.01.2012
Сообщений: 4
По умолчанию

А как избавится от этого? При создании проeкта Win32 project он сам создает фаил Hello1. В примере из учебника сказали создать дополнительный Hello и вписать код =\
p.s. проблема решилась путем вырезания заранее созданного Hello. Правильно ли это?
pranki вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изучение С++ AlexSanify Помощь студентам 10 05.10.2011 19:52
Изучение Ghost of Night Общие вопросы C/C++ 86 25.07.2011 00:37
изучение actionscript jojo97 JavaScript, Ajax 4 11.01.2010 08:01
Изучение C++ Amidosha Помощь студентам 1 18.03.2009 17:48
Изучение С++ AlexMSU Общие вопросы C/C++ 1 18.03.2009 13:52