powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / размер исполняемого файла
8 сообщений из 8, страница 1 из 1
размер исполняемого файла
    #34569941
Фотография -Sergey-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сегодня купил и установил MS Visual Studio 2005
решил проверить методом "иженерного тыка" что лучше Borland C++ or MsVC++ .
(вечный по сути вопрос..) на примере создания программы на чистом API
и вот теперь меня мучает дилема:
почему в перовом случае( MS VC++) размер исходного файла равен 40 960 байт
а во втором 8 704... ??????
может имеет место ситуация когда Борланд (аналогично как с Delphi требует что бы с файлом шел еще менджер памяти какая-то.dll ) ??

или микрософт решила про запас засунуть еще что-то в экзешник ??


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
#include <windows.h>



long WINAPI WndProc(HWND, UINT, WPARAM,LPARAM);


int WINAPI WinMain(HINSTANCE hInstance,
                   HINSTANCE hPrevInstance,
                   LPSTR     lpCmdLine,
                   int       nCmdShow)
{
//---------------------------------------------------
    HWND hwnd;
    MSG msg;
    WNDCLASS w;

    memset(&w, 0 ,sizeof(WNDCLASS));
    w.style = CS_HREDRAW | CS_VREDRAW;
    w.lpfnWndProc = WndProc;
    w.hInstance = hInstance;
    w.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
    w.lpszClassName = (LPCWSTR)"My Class";
    RegisterClass(&w);
    hwnd = CreateWindow((LPCWSTR) "My Class",
		                (LPCWSTR) "My title",
						WS_OVERLAPPEDWINDOW,
						 300 ,
						 200 ,
						 200 ,
						 180 ,
						NULL,
						NULL,
						hInstance,
						NULL);
    ShowWindow(hwnd,nCmdShow);
    UpdateWindow(hwnd);
    while(GetMessage(&msg,NULL, 0 , 0 ))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return msg.wParam;
//---------------------------------------------------
}

LONG WINAPI WndProc(HWND hwnd, UINT Message, WPARAM wparam, LPARAM lparam)
{
    switch (Message){
    case WM_DESTROY: 
        PostQuitMessage( 0 );
        break;
    default:
        return  DefWindowProc(hwnd, Message, wparam, lparam);
    }
    return  0 ;
}

...
Рейтинг: 0 / 0
размер исполняемого файла
    #34570001
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В Билдере в меню Projects->Options вкладка Packages крыжик "Build with runtime packages" установлен небось? )) - попробуй снять и сравни результат теперь
...
Рейтинг: 0 / 0
размер исполняемого файла
    #34570002
Фотография Lelikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я как-то оптимизировал по размеру небольшую свою сервисную прожку строк 700, поставил следующие опции:
1) Whole Program Optimization - Use Link-Time CG
2) Function level linking - Enable
3) Eliminate unref. data - Enable
4) Optimize for Win98 - Disable

Без использованием MFC И ATL получил в Release режиме размер в 10-11 килобайт.
...
Рейтинг: 0 / 0
размер исполняемого файла
    #34570006
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мда... жгу сегодня целый день (( какие пакаджи - WinAPI-же!
...
Рейтинг: 0 / 0
размер исполняемого файла
    #34570221
Фотография sashka304
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пакеджи пакеджами а компилятору пофиг у него настройки :)
...
Рейтинг: 0 / 0
размер исполняемого файла
    #34570464
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-Sergey-почему в перовом случае( MS VC++) размер исходного файла равен 40 960 байт
а во втором 8 704... ??????

Собственно, исходник был не нужен.

Если эта утилита, стартует редко и используется достаточно эксклюзивно (комп. игра) то о размере памяти можно не беспокоится. Кроме того, практика показывает что лвиную долю памяти едят ресурсы (картинки, звуки и т.п).

Но если преследуется цель - клепать типовые утилиты (библиотеки, ISAPI-расширения, компоненты) то лучше выделить больший процент кода в shared dlls. Это уменьшит оверхед старт-стопа процессов и позволить легче реализовать обновление версий комплекса.
...
Рейтинг: 0 / 0
размер исполняемого файла
    #34573407
Фотография -Sergey-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
опять тестирую MS VS C++

тепрь вопрос такой что самому страшно задавать...

что стало с функцией MessageBox() ???
по чему при
MessageBoxA(0, "text", "Caption", 0);

вызывает ошибку компилятора

С:\documents and settings\admin.sergey.000\мои документы\visual studio 2005\projects\test\test\test.cpp(149) : error C2664: 'MessageBoxW' : cannot convert parameter 2 from 'const char [5]' to 'LPCWSTR'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast - по смыслу ясно что ругается не неверное приведение типов


НО

функцией MessageBoxA(0, "text", "Caption", 0);
Нормально компилируется...


ВОПРОС:
за чем надо было переопределять/перегружать данную функцию?






Цель в жизни определяет все..
Выбор есть всегда..
Но мы часто не хотим его делать..
...
Рейтинг: 0 / 0
размер исполняемого файла
    #34573673
Фотография -Sergey-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все разобрался покапался в настройках компилятора стоял по умолчанию флажок использовать
Unicode- поддержка висты
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / размер исполняемого файла
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]