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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.05.2010, 17:16   #1
opensuse2008
Пользователь
 
Регистрация: 07.06.2009
Сообщений: 12
По умолчанию запуск .exe из папки Debug на других компьютерах

Всем доброго времени суток, в общем написал небольшую игру с помощью GDI.
При запуске на другом компьютере .exe файла из папки Debug выходит ошибка: "Приложение не было запущено, поскольку оно некорректно настроено. Повторная установка приложения может решить данную проблему."
В гугле пробывал искать, вразумительного ответа не нашел. Помогите.

Вот код:
Код:

// INCLUDES ///////////////////////////////////////////////
#define WIN32_LEAN_AND_MEAN  // just say no to MFC

#include <windows.h>   // include all the windows headers
#include <windowsx.h>  // include useful macros
#include <mmsystem.h>  // very important and include WINMM.LIB too!
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "file_res.h"

// DEFINES ////////////////////////////////////////////////

// defines for windows 
#define WINDOW_CLASS_NAME "WINCLASS1"

#define WINDOW_WIDTH  600
#define WINDOW_HEIGHT 400

// MACROS /////////////////////////////////////////////////

#define KEYDOWN(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000) ? 1 : 0)
#define KEYUP(vk_code)   ((GetAsyncKeyState(vk_code) & 0x8000) ? 0 : 1)

// GLOBALS ////////////////////////////////////////////////
HWND      main_window_handle = NULL; // globally track main window

HINSTANCE hinstance_app      = NULL; // globally track hinstance
char buffer[80];                     // general printing buffer

// FUNCTIONS //////////////////////////////////////////////
LRESULT CALLBACK WindowProc(HWND hwnd, 
						    UINT msg, 
                            WPARAM wparam, 
                            LPARAM lparam)
{
// this is the main message handler of the system
PAINTSTRUCT		ps;		// used in WM_PAINT
HDC				hdc;	// handle to a device context
char buffer[80];        // used to print strings

// what is the message 
switch(msg)
	{	
	case WM_CREATE: 
        {
		// do initialization stuff here
        // return success
		return(0);
		} break;
   
	case WM_PAINT: 
		{
		// simply validate the window 
   	    hdc = BeginPaint(hwnd,&ps);	 
        
        // end painting
        EndPaint(hwnd,&ps);

        // return success
		return(0);
   		} break;

	case WM_DESTROY: 
		{

		// kill the application, this sends a WM_QUIT message 
		PostQuitMessage(0);

        // return success
		return(0);
		} break;

	default:break;

    } // end switch

// process any messages that we didn't take care of 
return (DefWindowProc(hwnd, msg, wparam, lparam));

} // end WinProc

// WINMAIN ////////////////////////////////////////////////
int WINAPI WinMain(	HINSTANCE hinstance,
					HINSTANCE hprevinstance,
					LPSTR lpcmdline,
					int ncmdshow)
{

WNDCLASSEX winclass; // this will hold the class we create
HWND	   hwnd;	 // generic window handle
MSG		   msg;		 // generic message
HDC        hdc;      // graphics device context

// first fill in the window class stucture
winclass.cbSize         = sizeof(WNDCLASSEX);
winclass.style			= CS_DBLCLKS | CS_OWNDC | 
                          CS_HREDRAW | CS_VREDRAW;
winclass.lpfnWndProc	= WindowProc;
winclass.cbClsExtra		= 0;
winclass.cbWndExtra		= 0;
winclass.hInstance		= hinstance;
winclass.hIcon			= LoadIcon(hinstance, MAKEINTRESOURCE(ICON_1)); 
winclass.hCursor		= LoadCursor(NULL, IDC_ARROW); 
winclass.hbrBackground	= (HBRUSH)GetStockObject(BLACK_BRUSH);
winclass.lpszMenuName	= NULL;
winclass.lpszClassName	= WINDOW_CLASS_NAME;
winclass.hIconSm        = LoadIcon(hinstance, MAKEINTRESOURCE(ICON_1)); 

// save hinstance in global
hinstance_app = hinstance;

// register the window class
if (!RegisterClassEx(&winclass))
	return(0);

// create the window
if (!(hwnd = CreateWindowEx(NULL,                // extended style
                            WINDOW_CLASS_NAME,   // class
						    "game", // title
						    WS_OVERLAPPEDWINDOW | WS_VISIBLE,
					 	    100,100,	  // initial x,y
						    WINDOW_WIDTH, // initial width
                            WINDOW_HEIGHT,// initial height
						    NULL,	  // handle to parent 
						    NULL,	  // handle to menu
						    hinstance,// instance of this application
						    NULL)))	// extra creation parms
return(0);

// save main window handle
main_window_handle = hwnd;

// get the graphics device context once this time and keep it
// this is possible due to the CS_OWNDC flag
hdc = GetDC(hwnd);

// seed random number generator
srand(GetTickCount());

// create the pens and brushes
HPEN   white_pen = CreatePen(PS_SOLID, 1, RGB(255,255,255));
HPEN   black_pen = CreatePen(PS_SOLID, 1, RGB(0,0,0));
HBRUSH green_brush = CreateSolidBrush(RGB(0,255,0));
HBRUSH black_brush = CreateSolidBrush(RGB(0,0,0));
HPEN green_pen = CreatePen(PS_SOLID,1,RGB(0,255,0));

// enter main event loop, but this time we use PeekMessage()
// instead of GetMessage() to retrieve messages
opensuse2008 вне форума Ответить с цитированием
Старый 17.05.2010, 17:17   #2
opensuse2008
Пользователь
 
Регистрация: 07.06.2009
Сообщений: 12
По умолчанию

Код:
	int i1=0;

	int u1=10;//скорость ракетки(только влево и вправо)
	int width_raketka=100, height_raketka=10;//ширина и высота ракетрки
	int startX_raketka=250, startY_raketka=350;//начальные координаты ракети


	int ux1=0, uy1=0;

	int ux=5,uy=5;//скорости мяча(по осям X и Y)
	int width_myach=20, height_myach=20;//ширина и высота мяча
	int startX_myach=290, startY_myach=330;//начальные координаты мяча

	//координаты мяча
	int m1x, m2x, m1y, m2y;

	//координаты 5 блоков вверху
	int bx1[5], bx2[5], by1, by2;
	bool bb[5]={1, 1, 1, 1, 1};
	int block_width=80, block_height=20;//ддина и высота 1-го блока
	int kray=35;
	int otstup=30;
	bool proverka=1; int prov=0; int esli=0, to=3;

	//вычисляем координаты х у каждого блока
	for(int i=0; i<5; i++)
	{
		bx1[i]=kray+(block_width+otstup)*i;
		bx2[i]=kray+(block_width+otstup)*i+block_width;
	}
	
	by1=10; by2=by1+block_height;

while(TRUE)
	{
		prov=0;
    // test if there is a message in queue, if so get it
	if (PeekMessage(&msg,NULL,0,0,PM_REMOVE))
	   { 
	   // test if this is a quit
       if (msg.message == WM_QUIT)
           break;
	
	   // translate any accelerator keys
	   TranslateMessage(&msg);

	   // send the message to the window proc
	   DispatchMessage(&msg);
	   } // end if

	 m1x=startX_myach+ux1;
	 m2x=startX_myach+width_myach+ux1;

	 m1y=startY_myach+uy1;
	 m2y=startY_myach+height_myach+uy1;


	 //проверяем на сооударение мяча со стенками
	 if(m2x < 7 || m2x>(WINDOW_WIDTH-7))
		 ux=-ux;

	 if(m1y < 0 )
		 uy=-uy;

	 if( m1y>(WINDOW_HEIGHT-26))
	 { uy=-uy; esli++; }

	 //проверяем на соудорение мяча с ракеткрой
	 if(m2y==startY_raketka && m2x>=(startX_raketka+i1) && m1x<=(startX_raketka+width_raketka+i1))
		 uy=-uy;


	 		 //проверяем соудорение мяча с блоками
	 		for(int i=0; i<5; i++)
	{
		if(bb[i]==1)
		{
			if(m1y==by2 && m1x<=bx2[i] &&m2x>=bx1[i])
			{ bb[i]=0; uy=-uy; }
			if(m1x==bx2[i] && m2y>=by1 && m1y<=by2)
			{ bb[i]=0; ux=-ux; }
			if( m2x==bx1[i] && m2y>=by1 && m1y<=by2)
			{ bb[i]=0; ux=-ux; }
		}
	}



	SelectObject(hdc, black_pen);
    SelectObject(hdc, black_brush);


	Rectangle(hdc, (startX_raketka+i1), startY_raketka, (startX_raketka+width_raketka+i1), (startY_raketka+height_raketka));

	Rectangle(hdc, (startX_myach+ux1), (startY_myach+uy1), (startX_myach+width_myach+ux1), (startY_myach+height_myach+uy1));

			for(int i=0; i<5; i++)
	{
		Rectangle(hdc, bx1[i], by1, bx2[i], by2);	
	}


	 if (KEYDOWN(VK_RIGHT))
       i1=i1+u1;

	 if (KEYDOWN(VK_LEFT))
       i1=i1-u1;

 

	 ux1=ux1+ux;
	 uy1=uy1+uy;


	 

	SelectObject(hdc, green_pen);
    SelectObject(hdc, green_brush);

		for(int i=0; i<5; i++)
	{
		if(bb[i]==1)
		{
			Rectangle(hdc, bx1[i], by1, bx2[i], by2);	
		}
	}

	Rectangle(hdc, (startX_raketka+i1), startY_raketka, (startX_raketka+width_raketka+i1), (startY_raketka+height_raketka));
	Rectangle(hdc, (startX_myach+ux1), (startY_myach+uy1), (startX_myach+width_myach+ux1), (startY_myach+height_myach+uy1));


	DWORD start_time = GetTickCount();
	while((GetTickCount() - start_time) < 33);

	for(int i=0; i<5; i++)
	{
		if(bb[i]==0)
			prov++;
	}

	if(prov==5 || esli==to)
		SendMessage(hwnd, WM_CLOSE, 0,0);


    if (KEYDOWN(VK_ESCAPE))
       SendMessage(hwnd, WM_CLOSE, 0,0);

	

    // slow system down a little
    Sleep(10); 
	
       
	} // end while

// delete all the objects
DeleteObject(white_pen);
DeleteObject(black_pen);
DeleteObject(green_brush);
DeleteObject(black_brush);
DeleteObject(green_pen);

// release the device context
ReleaseDC(hwnd,hdc);

// return to Windows like this
return(msg.wParam);

} // end WinMain

///////////////////////////////////////////////////////////
opensuse2008 вне форума Ответить с цитированием
Старый 18.05.2010, 08:04   #3
mrChester
Я
Форумчанин
 
Аватар для mrChester
 
Регистрация: 24.04.2010
Сообщений: 693
По умолчанию

При тебе компиляцию нужно через Release сделать, и exe-шник уже в папке Release ,брать чтобы запускать на другом компе
Все персонажи вымышлены, все совпадения случайны.
Если жизнь игра, тогда я её разработчик ©.
mrChester вне форума Ответить с цитированием
Старый 18.05.2010, 12:06   #4
opensuse2008
Пользователь
 
Регистрация: 07.06.2009
Сообщений: 12
По умолчанию

Спасибо. Нашел где можно при компилировании через release применить многобайтовую кодировку.
opensuse2008 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запуск SWF на других компах,не имеющих flash player Dj_SheLL Общие вопросы Delphi 5 13.04.2010 22:46
Запуск макроса на листе, который выполняется в других листах as-is Microsoft Office Excel 20 14.03.2010 15:06
А на других дисках (кроме С) есть невидимые папки? DeKot Операционные системы общие вопросы 2 22.01.2010 07:46
Debug.exe Beginer Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 31.07.2009 13:55
перевод String to PAnsiChar (Запуск других приложений) ke6ko Общие вопросы Delphi 2 09.07.2009 20:47