Старый 03.10.2010, 21:17   #21
rsaReliableS
 
Регистрация: 29.07.2010
Сообщений: 36
Репутация: 7
По умолчанию

Цитата:
Сообщение от p00lzer Посмотреть сообщение
rsaReliableS обычно люди пишушие консольные приложение используют эти аргументы чтобы передать их значения программе
ага, но в данном случае происходит лишняя трата памяти =\
Код:
#include <iostream>
using namespace std;

int main(int argc,char argument[])
{
	setlocale(0,"");
	cout << "Проебал " << sizeof(argc) + sizeof(argument) << " байт памяти ( . Y . )";
	return 0;
	//.....
}
rsaReliableS вне форума   Ответить с цитированием
Старый 05.10.2010, 19:28   #22
M@ZAX@KEP
 
Аватар для M@ZAX@KEP
 
Регистрация: 24.07.2010
Сообщений: 139
Репутация: 5
По умолчанию Никампилица -_-

Пожалуйста, поставьте мне диагноз...
Создаю пустой проект qwerty в Visual Studio, добавляю единственный файл - qwerty.cpp Программа для дегенератов "Hello World"...
Код:
#include <iostream>

int main(){
    int i(0);
    std::cout << "Hello, world! =)\n";
    std::cin >> i;
    return 0;
}
Запускается только на тачке с Visual Studio. В другой ОС (на том же металле) откомпиленная прога страстно жаждет DLL-ку MSVCP100.dll
Потом в свойствах проекта выбрал "Использовать MFC в статической библиотеке" (было "в общей библиотеке windows"), меня послало на
Цитата:
1>------ Построение начато: проект: qwerty, Конфигурация: Release Win32 ------
1>Построение начато 05.10.2010 18:14:16.
1>InitializeBuildStatus:
1> Создание "Release\qwerty.unsuccessfulbuild", так как было задано "AlwaysCreate".
1>ClCompile:
1> Для всех выходных данных обновления не требуется.
1> qwerty.cpp
1>LIBCMT.lib(wwincrt0.obj) : error LNK2001: неразрешенный внешний символ "_wWinMain@16"
1>C:\Documents and Settings\MX\мои документы\visual studio 2010\Projects\Study\Release\qwerty.exe : fatal error LNK1120: 1 неразрешенных внешних элементов
1>
1>СБОЙ построения.
1>
1>Затраченное время: 00:00:02.64
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Откопал этот файл (LIBCMT.lib) поиском где-то в папке с Visual Studio, копирнул его в папку проекта (+ в папку решения\Release, где создаётся exe_шник) - не помогло.
\me в панике xD

ЗЫ Зря Айвор Хортон в своей толстенной книженции ничего не написал про компиляцю и сопровождение программы))
M@ZAX@KEP вне форума   Ответить с цитированием
Старый 05.10.2010, 19:32   #23
Delimiter
 
Регистрация: 12.08.2010
Сообщений: 47
Репутация: 4
По умолчанию

2 M@ZAX@KEP

если приложение WIN32 то при чем тут досовский вход main()

... оно хочет WinMain

ПОЧТИ пустое приложение WIN32:

Код:
#include "stdafx.h"
#include "resource.h"

#define MAX_LOADSTRING 100

// Global Variables:
HINSTANCE hInst;								// current instance
TCHAR szTitle[MAX_LOADSTRING];								// The title bar text
TCHAR szWindowClass[MAX_LOADSTRING];								// The title bar text

// Foward declarations of functions included in this code module:
ATOM				MyRegisterClass(HINSTANCE hInstance);
BOOL				InitInstance(HINSTANCE, int);
LRESULT CALLBACK	WndProc(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK	About(HWND, UINT, WPARAM, LPARAM);

int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
 	// TODO: Place code here.
	MSG msg;
	HACCEL hAccelTable;

	// Initialize global strings
	LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
	LoadString(hInstance, IDC_WW3, szWindowClass, MAX_LOADSTRING);
	MyRegisterClass(hInstance);

	// Perform application initialization:
	if (!InitInstance (hInstance, nCmdShow)) 
	{
		return FALSE;
	}

	hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_WW3);

	// Main message loop:
	while (GetMessage(&msg, NULL, 0, 0)) 
	{
		if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) 
		{
			TranslateMessage(&msg);
			DispatchMessage(&msg);
		}
	}

	return msg.wParam;
}



//
//  FUNCTION: MyRegisterClass()
//
//  PURPOSE: Registers the window class.
//
//  COMMENTS:
//
//    This function and its usage is only necessary if you want this code
//    to be compatible with Win32 systems prior to the 'RegisterClassEx'
//    function that was added to Windows 95. It is important to call this function
//    so that the application will get 'well formed' small icons associated
//    with it.
//
ATOM MyRegisterClass(HINSTANCE hInstance)
{
	WNDCLASSEX wcex;

	wcex.cbSize = sizeof(WNDCLASSEX); 

	wcex.style			= CS_HREDRAW | CS_VREDRAW;
	wcex.lpfnWndProc	= (WNDPROC)WndProc;
	wcex.cbClsExtra		= 0;
	wcex.cbWndExtra		= 0;
	wcex.hInstance		= hInstance;
	wcex.hIcon			= LoadIcon(hInstance, (LPCTSTR)IDI_WW3);
	wcex.hCursor		= LoadCursor(NULL, IDC_ARROW);
	wcex.hbrBackground	= (HBRUSH)(COLOR_WINDOW+1);
	wcex.lpszMenuName	= (LPCSTR)IDC_WW3;
	wcex.lpszClassName	= szWindowClass;
	wcex.hIconSm		= LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL);

	return RegisterClassEx(&wcex);
}

//
//   FUNCTION: InitInstance(HANDLE, int)
//
//   PURPOSE: Saves instance handle and creates main window
//
//   COMMENTS:
//
//        In this function, we save the instance handle in a global variable and
//        create and display the main program window.
//
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
   HWND hWnd;

   hInst = hInstance; // Store instance handle in our global variable

   hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
      CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);

   if (!hWnd)
   {
      return FALSE;
   }

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

   return TRUE;
}

//
//  FUNCTION: WndProc(HWND, unsigned, WORD, LONG)
//
//  PURPOSE:  Processes messages for the main window.
//
//  WM_COMMAND	- process the application menu
//  WM_PAINT	- Paint the main window
//  WM_DESTROY	- post a quit message and return
//
//
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	int wmId, wmEvent;
	PAINTSTRUCT ps;
	HDC hdc;
	TCHAR szHello[MAX_LOADSTRING];
	LoadString(hInst, IDS_HELLO, szHello, MAX_LOADSTRING);

	switch (message) 
	{
		case WM_COMMAND:
			wmId    = LOWORD(wParam); 
			wmEvent = HIWORD(wParam); 
			// Parse the menu selections:
			switch (wmId)
			{
				case IDM_ABOUT:
				   DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About);
				   break;
				case IDM_EXIT:
				   DestroyWindow(hWnd);
				   break;
				default:
				   return DefWindowProc(hWnd, message, wParam, lParam);
			}
			break;
		case WM_PAINT:
			hdc = BeginPaint(hWnd, &ps);
			// TODO: Add any drawing code here...
			RECT rt;
			GetClientRect(hWnd, &rt);
			DrawText(hdc, szHello, strlen(szHello), &rt, DT_CENTER);
			EndPaint(hWnd, &ps);
			break;
		case WM_DESTROY:
			PostQuitMessage(0);
			break;
		default:
			return DefWindowProc(hWnd, message, wParam, lParam);
   }
   return 0;
}

// Mesage handler for about box.
LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
	switch (message)
	{
		case WM_INITDIALOG:
				return TRUE;

		case WM_COMMAND:
			if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) 
			{
				EndDialog(hDlg, LOWORD(wParam));
				return TRUE;
			}
			break;
	}
    return FALSE;
}
еще можно повыкидывать кучно.... но суть должна быть понятна!

программы под виндоуз СОБЫТИЙНЫЕ (управляются событиями приходящими от операционки)
Delimiter вне форума   Ответить с цитированием
Старый 06.10.2010, 17:48   #24
M@ZAX@KEP
 
Аватар для M@ZAX@KEP
 
Регистрация: 24.07.2010
Сообщений: 139
Репутация: 5
По умолчанию

Цитата:
если приложение WIN32 то при чем тут досовский вход main()
Авторы 90% книжек походу грёбаные теоретики, у всех main() про winmain упоминалось только в разделе "программирование под CLR", но начерта мне .NetFramework в простецких программках на данном этапе?

Цитата:
программы под виндоуз СОБЫТИЙНЫЕ (управляются событиями приходящими от операционки)
Читали мы такую шляпу, слышали)) Но не думал что простое консольное приложение не может существовать в простом виде...
ЗЫ ну оно же запускается и работает на тачке с компилятором

Попробую ещё по их готовому шаблону "консольное приложение win32" сейчас сделать...

Всё дошло, нужно было создавать "Проект win32" походу... (по крайней мере этот страшный код я там увидел xD)
Ах ты чёрт, не прикалывает меня что-то вручную интерфейс кодить... может я ищу слишком простые пути, но... неужели нельзя как-то проще откомпилить?

А вот и хрен там. То что было предложено выше (с WinMain) желает той же библиотеки MSVCP100.dll Где взять?
ЗЫ любой проект её требует, вообще ничерта не понимаю...
M@ZAX@KEP вне форума   Ответить с цитированием
Старый 07.10.2010, 11:40   #25
Delimiter
 
Регистрация: 12.08.2010
Сообщений: 47
Репутация: 4
По умолчанию

СОВЕТ!!!!

Если учишься программировать на C-C++ ... то лучше установи себе Borland C 3.1(4-5), просто многие авторы книг писали свои книги раньше чем Страуп! 8))

ТАМ ПРИМЕРЫ УЙДУТ "В ЛЕТ"!
Delimiter вне форума   Ответить с цитированием
Старый 07.10.2010, 18:25   #26
M@ZAX@KEP
 
Аватар для M@ZAX@KEP
 
Регистрация: 24.07.2010
Сообщений: 139
Репутация: 5
По умолчанию

В моём (клиническом походу) случае книга как раз таки по Visual Studio =) БАЦ
Всё же не может быть чтобы Visual Studio... тупо не работал и не компилил. XD
Есть подозрение, что виноват .Net Framework, которого требуют (хз зачем, это просто моё предположение) все проги, собранные этим Visual Studio (кстати, версия если что 2010 Profesional).. я уж грешным делом думаю, может в настройках чё подправить надо чтоб не использовал net framework...?
M@ZAX@KEP вне форума   Ответить с цитированием
Старый 18.10.2010, 15:15   #27
M@ZAX@KEP
 
Аватар для M@ZAX@KEP
 
Регистрация: 24.07.2010
Сообщений: 139
Репутация: 5
По умолчанию

А ларчик просто открывался, только никто (почти) об этом не знал xD
Нужно было в свойствах проекта в разделе "C/C++ --> Создание кода" поменять параметр "библиотека выполнения" на многопоточную (/MT) (для debug-версии на (/MTd) )
Вобщем, проблема решена))
M@ZAX@KEP вне форума   Ответить с цитированием
Старый 18.10.2010, 15:33   #28
Delimiter
 
Регистрация: 12.08.2010
Сообщений: 47
Репутация: 4
По умолчанию

будь готов к тому что люди сидят на РАЗНЫХ вижуал стадиях ... и никто ради тебя не будет устанавливать и разбираться в свойствах твоих проектов 8))) ... пример Visual Studia 6.0 ...
/nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Fp"Release/wave_oscilograph.pch" /Yu"stdafx.h" /Fo"Release/" /Fd"Release/" /FD /c

... вставь сюда 8))) то что тебе нравится!!!

сели за программирование .... то будьте взрослее!!!

ДАТЬ WATCOM С++ свойства проекта... или будешь считать что все сидят на том на чем ты сидишь???

ЯЗЫК С++ не связан с конкретной средой программирования!!!
Delimiter вне форума   Ответить с цитированием
Старый 19.10.2010, 09:39   #29
M@ZAX@KEP
 
Аватар для M@ZAX@KEP
 
Регистрация: 24.07.2010
Сообщений: 139
Репутация: 5
По умолчанию

Цитата:
никто ради тебя не будет устанавливать и разбираться в свойствах твоих проектов
А мне и не надо
На данном этапе - лишь бы экзешник работал...)) я виноват что ли что с дефолтными настройками ничего не пашет? <_<
Других предложений по поводу того, как правильно откомпилить, я не увидел, посему будет с настройками))
M@ZAX@KEP вне форума   Ответить с цитированием
Старый 19.10.2010, 17:41   #30
Ctacok
 
Аватар для Ctacok
 
Регистрация: 06.07.2010
Сообщений: 127
Репутация: 49
По умолчанию

Код:
//---------------------------------------------------------------------------

#pragma hdrstop
#include <iostream>
#include <fstream>
#include <string>

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

#pragma argsused
using namespace std;
int main(int argc, char* argv[])
{
	/* Write file!
	ofstream myfile;
	myfile.open ("sitemap.xml");
	myfile << "Writing this to a file.\n";
	myfile.close();
	*/
  int length;
  char * buffer;
  char * buffer2;
  string str;
  ifstream is;
  is.open ("example.txt", ios::binary );
  is.seekg (0, ios::end);
  length = is.tellg();
  is.seekg (0, ios::beg);
  buffer = new char [length];
  is.read (buffer,length);
  is.close();
  cout.write (buffer2,length);
  str.replace(buffer, buffer2, " ", "+");
  delete[] buffer;
  delete[] buffer2;
  return 0;
}
//---------------------------------------------------------------------------
First chance exception at $7C812AFB. Exception class std:ut_of_range with message 'Exception Object Address: 0x9F4E86'. Process Project2.exe (2840)
Как решать?
Спасибо.
__________________
Twitter - @Ctacok
Ctacok вне форума   Ответить с цитированием
Ответ

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

Расширенный поиск
Опции просмотра

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход



Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot