Problem z linkowaniem przy załączaniu statycznych bibliotek

0

Witam.
Win XP (.NET Framework 4)
Visual C++ Express 2010
Win32 Project / Windows applocation

Właśnie zacząłem naukę WinAPI i na dzień dobry napotkałem pewne problemy.

Próbuję kompilować taki kod:

 
#include <windows.h>

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow)
{
MessageBox (NULL, TEXT("Tresc komunikatu"), TEXT("Komunikat"), NULL);
return 0;
}

i wszystko jest w porządku. Program (jakże skomplikowany) się uruchamia na komputerze na którym był napisany. Jednak próba odpalenia go na innym komputerze kończy się komunikatem o braku jakiejs biblioteki.

Aby tego uniknąć we właściwościach projektu zaznaczyłem użycie bibliotek statycznych (z "Use Standard Windows Libraries" zmieniłem na "Use MFC in a Static Library") i wtedy zaczęły się problemy z linkerem:

1>------ Build started: Project: example, Configuration: Release Win32 ------
1>  WinMain.cpp
1>WinMain.obj : error LNK2001: unresolved external symbol __imp__MessageBoxW@16
1>LIBCMT.lib(wwincrt0.obj) : error LNK2001: unresolved external symbol _wWinMain@16
1>D:\...\example\Release\example.exe : fatal error LNK1120: 2 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Czy ktoś spotkał się z takim problemem? Dodam, że pisząc to samo w Dev'ie nie ma żadnych błędów a program działa na innych komputerach.

0

A sprobuj wpisac tak:

#include <windows.h>
 
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow)
{
MessageBox (NULL, L"Tresc komunikatu", L"Komunikat", NULL);
return 0;
}
0

korzystasz z MFC w aplikacji? jeśli nie, to źle przestawiłeś.
ustaw z powrotem na „use standard windows libraries”, za to w we właściwościach projektu w C/C++|Code Generation|Runtime Library ustaw /MT dla release i /MTd dla debug.

1 użytkowników online, w tym zalogowanych: 0, gości: 1