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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.03.2010, 14:07   #1
ds.Dante
Старожил
 
Аватар для ds.Dante
 
Регистрация: 06.08.2009
Сообщений: 2,992
По умолчанию Пустой проект в Билдере

Такой вопросик, для моей статьи - как создать в Билдере Win32 Application, Empty project (по аналогии со студией)? Билдера под рукой нет, поэтому нужно краткое описание.
ds.Dante вне форума Ответить с цитированием
Старый 10.03.2010, 14:24   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Меню File-New-VCL Form Application C++
Появится форма.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.03.2010, 15:07   #3
ds.Dante
Старожил
 
Аватар для ds.Dante
 
Регистрация: 06.08.2009
Сообщений: 2,992
По умолчанию

Не нужны никакие классы/ресурсы, единственный файл .cpp пишется вручную с нуля, как в старом добром Borland С++.

Последний раз редактировалось ds.Dante; 10.03.2010 в 15:09.
ds.Dante вне форума Ответить с цитированием
Старый 10.03.2010, 15:20   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

В таком случае выбираешь тип проекта Console Application.
Из всех галочек оставляешь только Multi Threaded, остальные снимаешь.
Получаешь шаблон кода.
Если подгонять твою статью под Бильдер то выглядеть она будет с некоторыми отличиями:
Код:
//---------------------------------------------------------------------------

#include <windows.h>
#pragma hdrstop

#include <tchar.h>
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <math.h>

HDC dc;

//---------------------------------------------------------------------------

#pragma argsused
LRESULT CALLBACK WindowProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	static bool	Move=1;
	static int	Phase=0, Width, Height;

	switch (message)
	{
	case WM_LBUTTONDOWN:
	case WM_RBUTTONDOWN:
		Move = !Move;
		// no break

	case WM_TIMER:
		if (Move)
			Phase++;
			// no break
		else
			break;

	case WM_PAINT:
		Rectangle (dc, -1, -1, Width+1, Height+1);
		MoveToEx (dc, 0, Height * (0.5 + 0.3*sin(0.1*Phase)), NULL);
		for (int i=0; i<Width; i++)
			LineTo (dc, i, Height * (0.5 + 0.3*sin(0.1*(i+Phase))) );
		break;

	case WM_SIZE:
		Width  = LOWORD(lParam),
		Height = HIWORD(lParam);
		break;

	case WM_KEYDOWN:
		if (wParam != VK_ESCAPE)
			break;
		// else no break

	case WM_DESTROY:
		PostQuitMessage (0);
	}

	return DefWindowProc (hWnd, message, wParam, lParam);
}

WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
{
							// Create window
	WNDCLASS wc		= {0};
	wc.style		= CS_OWNDC | CS_HREDRAW | CS_VREDRAW;
	wc.lpfnWndProc	= WindowProc;
	wc.hInstance	= hInstance;
	wc.hCursor		= LoadCursor (NULL, IDC_ARROW);
	wc.lpszClassName= "CMyWnd";
	RegisterClass (&wc);
	HWND hWnd = CreateWindow ("CMyWnd", "WinMain sample", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, 320, 240, NULL, NULL, hInstance, NULL);
	dc = GetDC (hWnd);
	ShowWindow (hWnd, nCmdShow);

						// Message loop (timer, etc)
	SetTimer (hWnd, 1, USER_TIMER_MINIMUM, NULL);
	MSG msg;
	while (GetMessage(&msg,NULL,0,0) > 0)	// while not WM_QUIT (0) nor some error (-1)
	{
		TranslateMessage (&msg);
		DispatchMessage (&msg);
	}

	return msg.wParam;

}
//---------------------------------------------------------------------------
Понял?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.03.2010, 15:39   #5
ds.Dante
Старожил
 
Аватар для ds.Dante
 
Регистрация: 06.08.2009
Сообщений: 2,992
По умолчанию

1) В Студии, если выбрать именно Console Application, устанавливаются некоторые свойства проекта, и компилятор начинает требовать функцию main (WinMain уже не катит). В Билдере с этим всё нормально?

2) В исходном виде программа не работает в Билдере? tchar и _tWinMain нам по идее не нужны - у нас чисто юникодовый проект (вероятность нахождения компилятора на неюникодовой системе я считаю слишком маленькой, чтобы заострять на этом внимание в "Простейшей программе").

3) <cmath> входит в стандарт C++ 98-го года. С ним тоже проблемы?

4) Какие-то странные директивы... Зачем нужны прагмы (без них не работает?)? Зачем нам два #include <windows.h>?
ds.Dante вне форума Ответить с цитированием
Старый 10.03.2010, 15:49   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
В Билдере с этим всё нормально?
Ну скажем не замечал особых проблем.
Хотя обычно у него имя главной функции либо
_tWinMain либо _tMain
Цитата:
В исходном виде программа не работает в Билдере?
Не неработает, а не компилируется. Видимо особенности Билдера.
Цитата:
С ним тоже проблемы?
Не только с ним. Билдер не подчиняется ANSI C. У него свои немного борландовские законы. (с другими хеадерами так же такие же проблемы могут быть)
Цитата:
Какие-то странные директивы
Скажем так - не обращай на них внимание, бильдеру они нравятся.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.03.2010, 15:59   #7
ds.Dante
Старожил
 
Аватар для ds.Dante
 
Регистрация: 06.08.2009
Сообщений: 2,992
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Скажем так - не обращай на них внимание, бильдеру они нравятся.
Я не могу написать так в статье. Мне нужны минимальные необходимые изменения, без которых точно не будет работать.

Ладно, чёрт с ним. Напишу в статье "'этой программе требуется Visual C++".

Последний раз редактировалось Stilet; 10.03.2010 в 16:22.
ds.Dante вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Многопоточность на билдере Golovastik Помощь студентам 0 03.10.2009 21:59
Графика в С++ Билдере Impuls1989 Общие вопросы C/C++ 19 14.08.2009 15:12
печать в Билдере Dimarik Общие вопросы C/C++ 5 18.07.2009 19:42
Из listBox в paintbox в Билдере slonik123 Общие вопросы C/C++ 0 09.03.2009 15:12
задача на с++ в билдере Барби Фриланс 2 16.12.2008 10:06