Коппиляция без инклуд

Discussion in 'LANGS.C' started by rudik, Jan 24, 2008.

  1. rudik

    rudik Руденко Артём

    Blog Posts:
    0
    Joined:
    Dec 6, 2006
    Messages:
    302
    Location:
    г. Харьков
    Подскажите пожалуйста как скомпилировать екзешку например с MessageBoxA без подключения windows.h и других библиотек в MS VC++ 2005.
     
  2. Mika0x65

    Mika0x65 New Member

    Blog Posts:
    0
    Joined:
    Jul 30, 2005
    Messages:
    1,384
    Это не библиотеки, это заголовочные файлы. Можно перенести прототипы ф-ий в сам .c файл, например.

    А зачем это нужно?
     
  3. asmlamo

    asmlamo Well-Known Member

    Blog Posts:
    0
    Joined:
    May 18, 2004
    Messages:
    1,742
    А смысл ???
     
  4. maxdiver

    maxdiver Max

    Blog Posts:
    0
    Joined:
    Jul 18, 2006
    Messages:
    308
    Location:
    Саратов
    Ну объявить просто:
    Code (Text):
    1. extern "C" int __stdcall MessageBoxA (void*,const char*,const char*,unsigned);
    можно ещё HWND объявить:
    Code (Text):
    1. struct HWND__ { int unused; };
    2. typedef HWND__ *HWND;
     
  5. doesn

    doesn New Member

    Blog Posts:
    0
    Joined:
    Dec 5, 2007
    Messages:
    97
    а какой в этом смысл? прототипы ичего не жрут
    или я не прав?
     
  6. IceStudent

    IceStudent Active Member

    Blog Posts:
    0
    Joined:
    Oct 2, 2003
    Messages:
    4,300
    Location:
    Ukraine
    doesn
    Единственный смысл - независимость от пакета (sdk/библиотек).
     
  7. device

    device Reflection

    Blog Posts:
    0
    Joined:
    Apr 26, 2007
    Messages:
    1,198
    Location:
    RF
    На практике - никакого смысла.

    Ну, если я отдаю прогу клиенту, то обычно говорю, что для ее сборки требуются:
    1. [список библиотек ]
    2. [список .h файлов ]
    3. [список утилит ]
     
  8. n0hack

    n0hack New Member

    Blog Posts:
    0
    Joined:
    Jun 3, 2008
    Messages:
    71
    rudik
    Я так понимаю, Вы используете Express Edition, в комплекте которой нет соответствующих заголовочных файлов и библиотек. Установите Platform SDK. Последний доступен для бесплатного скачивания на microsoft.com.
    http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm

    Или вот Вам все необходимые файлы (.7z, 41,7 Мб):
    http://rapidshare.com/files/128979573/SmallPSDK.7z
     
  9. _DEN_

    _DEN_ DEN

    Blog Posts:
    0
    Joined:
    Oct 8, 2003
    Messages:
    5,383
    Location:
    Йобастан
    Жизнь без секса)))
     
  10. osrootd

    osrootd New Member

    Blog Posts:
    0
    Joined:
    Jul 30, 2008
    Messages:
    1,086
    создайте hello, world на си.
    наберите: gcc -save-temps hello.c
    Посмотрите на один из файлов. На самый большой. Это - ваше hello без инклуд. ВСЕ инклуды в одном файле.
    Можете его откомпилить - получите тот же hello