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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.01.2010, 18:54   #1
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию Запуск exe на другой машине (WinAPI + OpenGL)

Помогите, пожалуйста, не знаю, что уже и делать. Создаю приложение в VisualStudio.
Код:
#pragma comment (lib, "opengl32.lib")
#pragma comment (lib, "glu32.lib")

#include <windows.h>
#include <CMath>

#include <gl/gl.h>
#include <gl/glu.h>

const char g_szClassName[] = "MyClass";
static	HDC hDC;
static	HGLRC hRC;	
int nach_x = 0, nach_y = 0;
int dl = 5;


GLvoid Draw(GLvoid);
GLvoid Initial(GLsizei Width, GLsizei Height);

LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
	RECT Screen;
	GLuint PixelFormat;

	static PIXELFORMATDESCRIPTOR pfd =
	{
		sizeof(PIXELFORMATDESCRIPTOR),		
		1,									
		PFD_DRAW_TO_WINDOW|	
		PFD_SUPPORT_OPENGL|		
		PFD_DOUBLEBUFFER,	
		PFD_TYPE_RGBA,	
		16,	
		0, 0, 0, 0, 0, 0,		
		0,		
		0,		
		0,		
		0, 0, 0, 0,						
		16,		
		0,		
		0,		
		PFD_MAIN_PLANE,
		0,		
		0, 0, 0					
	};

	switch(msg)
	{
	case WM_CREATE:
		hDC = GetDC(hWnd);
		PixelFormat = ChoosePixelFormat(hDC, &pfd);
		SetPixelFormat(hDC, PixelFormat, &pfd);
		hRC = wglCreateContext(hDC);
		wglMakeCurrent(hDC, hRC);
		GetClientRect(hWnd, &Screen);
		Initial(Screen.right, Screen.bottom);
		break;
	case WM_CLOSE: case WM_RBUTTONDOWN:
		DestroyWindow(hWnd);
		break;
	case WM_DESTROY:
		ChangeDisplaySettings(NULL, 0);

		wglMakeCurrent(hDC, NULL);
		wglDeleteContext(hRC);
		ReleaseDC(hWnd, hDC);

		PostQuitMessage(0);
		break;
	default:
		return DefWindowProc(hWnd, msg, wParam, lParam); 
	}
}



int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hProvInstance, LPSTR lpCmdLine, int nShowCmd)
{
	MSG			msg;
	WNDCLASS	wc;
	HWND		hWnd;

	wc.style		= CS_HREDRAW | CS_VREDRAW | CS_OWNDC;
	wc.lpfnWndProc	= (WNDPROC)WndProc;
	wc.cbClsExtra	= 0;
	wc.cbWndExtra	= 0;
	wc.hInstance	= hInst;
	wc.hIcon		= NULL;
	wc.hCursor		= LoadCursor(NULL, IDC_ARROW);
	wc.hbrBackground	= NULL;
	wc.lpszMenuName		= NULL;
	wc.lpszClassName	= g_szClassName;

	RegisterClass(&wc); 
	

	hWnd = CreateWindow(g_szClassName,"Лабораторная работа № 1",WS_POPUP |WS_OVERLAPPEDWINDOW |WS_CLIPSIBLINGS,0, 0, 
						800, 300, NULL, NULL, hInst, NULL);


	ShowWindow(hWnd, SW_SHOW);
	UpdateWindow(hWnd);
	SetFocus(hWnd);

	while(true)
	{
		while(PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE))
		{
			if(GetMessage(&msg, NULL, 0, 0))
			{
				TranslateMessage(&msg);
				DispatchMessage(&msg);
			}
			else
			{
				return TRUE;
			}
		}
		Draw();
		SwapBuffers(hDC);
	}
	return msg.wParam;
}

GLvoid Initial(GLsizei Width, GLsizei Height)
{
	glClearColor(0.2f, 0.93f, 0.92f, 0.0f);
	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();

	gluPerspective(45.0f, (GLfloat)Width / (GLfloat)Height, 0.1f, 50.0f);
	glMatrixMode(GL_MODELVIEW);
}

GLvoid Draw(GLvoid)
{
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
	glTranslatef(-3.0f, 2.0f, -10.0f);	

	glColor3f(1.0f, 0.0f, 0.0f);
	
	glBegin(GL_POLYGON);
		glVertex2d(0, 0);
		glVertex2d(10, 0);
		glVertex2d(12.5, -2.5);
		glVertex2d(10, -5);
		glVertex2d(0, -5);
		glVertex2d(-2.5, -2.5);
	glEnd();
	glLoadIdentity();
}
Делаю из него exe в режиме Release. Пытаюсь запустить на виртуальной машине. Пишет ошибку

Объясните, пожалуйста, что он от меня хочет???
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
ACE Valery вне форума Ответить с цитированием
Старый 24.01.2010, 19:43   #2
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

видимо хочет рантайм библиотеки VS
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 24.01.2010, 19:46   #3
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

Хм.. а откуда мне их взять?
Да и странно как-то... вроде не в Debug'е компилила...
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
ACE Valery вне форума Ответить с цитированием
Старый 26.01.2010, 02:31   #4
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

М-дааа... Я реально ступила. Вот к чему приводит редкое использование обычных проектов в Вижуал Студии... Для корректного запуска приложения нужен Framework
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
ACE Valery вне форума Ответить с цитированием
Старый 26.01.2010, 02:35   #5
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

Можно фреймворк таскать с собой или же

Project -> <имя проекта> properties -> Configuration properties -> C/C++ -> Code generation -> Runtime library -> Multi-threaded (/MT)
Carbon вне форума Ответить с цитированием
Старый 26.01.2010, 02:40   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Для корректного запуска приложения нужен Framework
CLR использовали?
так что предыдущий пост в помощь(+куча подобных тем)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 26.01.2010, 16:59   #7
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

Спасибо всем откликнувшимся)

Carbon, спасибо, я запомню
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
ACE Valery вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запуск макроса из другой книги! mephist Microsoft Office Excel 3 27.07.2009 15:06
чтение из одного exe файла, и запись в другой exe inndim Общие вопросы Delphi 2 04.02.2009 15:23
Авторизация на другой машине Незнайка Общие вопросы .NET 1 17.05.2008 21:50
Как открыть БД, написанную в Delphi если нf другой машине Delphi нет? dagarik БД в Delphi 7 22.10.2007 17:54
Запускпрограммы на другой машине(interbase) pro2f БД в Delphi 6 30.09.2007 13:36