настроки линкера в visual studio 2008

Тема в разделе "WASM.BEGINNERS", создана пользователем vic10, 22 янв 2009.

  1. vic10

    vic10 New Member

    Публикаций:
    0
    Регистрация:
    22 янв 2009
    Сообщения:
    2
    Привет всем. Только начинаю знакомиться со средой, интересует чистое winapi, написал hello_world, по умолчанию получилось ~ 27.5kb. Помогите пожалуйста с настройками, чтобы в exe оставалось только то, что нужно.
     
  2. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.426
    vic10
    /nodefaultlib /release
    подключаешь неоходимые либы как оыбчно и не забудь о msvcrt.lib (хоят не всегда будет требоваться)
     
  3. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Для чистого winapi crt не надо. Делаем свою точку входа и она отвалиться.
     
  4. vic10

    vic10 New Member

    Публикаций:
    0
    Регистрация:
    22 янв 2009
    Сообщения:
    2
    Спасибо, про nodefaultlib сейчас нашел в msdn, всё с этим понятно, помогите ещё скомпоновать плз, выдаёт:
    Код (Text):
    1. hello3.obj : error LNK2019: unresolved external symbol __RTC_CheckEsp referenced in function _WinMain@16
    2. hello3.obj : error LNK2001: unresolved external symbol __RTC_Shutdown
    3. hello3.obj : error LNK2001: unresolved external symbol __RTC_InitBase
    исходник такой:
    Код (Text):
    1. #pragma comment(linker,"/NODEFAULTLIB /RELEASE")
    2. #pragma comment(lib,"msvcrt.lib")
    3. #pragma comment(lib,"user32.lib")
    4. #pragma comment(lib,"kernel32.lib")
    5.  
    6. #include <windows.h>
    7.  
    8. int WinMain(HINSTANCE hInstance,
    9.             HINSTANCE hPrevInstance,
    10.             LPSTR     lpCmdLine,
    11.             int       nCmdShow)
    12. {
    13.   MessageBox(NULL, "hello","hello", 0);
    14.   return 0;
    15. }
    Извиняюсь за возможно глупые вопросы), просто я до этого сидел на борланде, причем делфи), сейчас попутно ещё изучаю синтаксис C
     
  5. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.317
    бредовая идея)))) а можно ведь MessageBox из DLL грузить)))
     
  6. asd

    asd New Member

    Публикаций:
    0
    Регистрация:
    12 мар 2005
    Сообщения:
    952
    Адрес:
    Russia
    http://www.google.com/search?client=opera&rls=ru&q=error+LNK2001:+unresolved+external+symbol+__RTC_Shutdown&sourceid=opera&ie=utf-8&oe=utf-8
    и дальше гуглом
     
  7. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Код (Text):
    1. #pragma comment(linker,"/NODEFAULTLIB")
    2. #pragma comment(linker,"/entry:MyWinMain")
    3. #pragma comment(linker,"/subsystem:windows")
    4.  
    5. #include <windows.h>
    6.  
    7. int __stdcall MyWinMain(HINSTANCE hInstance,
    8.             HINSTANCE hPrevInstance,
    9.             LPSTR     lpCmdLine,
    10.             int       nCmdShow)
    11. {
    12.     MessageBox(NULL, "hello","hello", 0);
    13.     return 0;
    14. }
    И не забыть отключить Buffer Security Check.

    З.Ы Собираем конечно в release.
     
  8. asmfan

    asmfan New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2006
    Сообщения:
    1.004
    Адрес:
    Abaddon
    Уже не актуально, а
    снимет лишнее со стека, а вот ExitProcess добавить не мешало бы.