Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Linkkaamisen kanssa ongelmia

tneva82 [29.07.2008 13:14:05]

#

linkkeri kirjoitti:

1>------ Build started: Project: poker, Configuration: Debug Win32 ------
1>Linking...
1>MSVCRTD.lib(crtexe.obj) : error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup
1>C:\Documents and Settings\gfintne\My Documents\Visual Studio 2008\Projects\poker\Debug\poker.exe : fatal error LNK1120: 1 unresolved externals
1>Build log was saved at "file://c:\Documents and Settings\gfintne\My Documents\Visual Studio 2008\Projects\poker\poker\Debug\BuildLog.htm"
1>poker - 2 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Yritän kääntää koodia Visual C++ Express editionilla työkoneessani. Kotikoneella kääntyy mainiosti mutta täällä vetäisee tuollaisen. En edes tiedä mihin tiedostoon nuo viittaa(mikä ihme MSVCRTD.lib edes on?) joten oletan että on windowsin omia mutta miksi ne nyt alkaisi temppuilemaan?

Mitään aavistusta minkätakia tämä reistailee?

Metabolix [29.07.2008 13:55:12]

#

MSVCRTD.lib on arvatenkin Microsoft Visual C Run-time -kirjaston debug-versio.

Ohjelmassasi ei ilmeisesti ole main-funktiota, vaikka kääntäjä sellaista kaipaa.

tneva82 [29.07.2008 14:08:11]

#

Hmm. Kyllä täällä tälläinen löytyy:

int APIENTRY _tWinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPTSTR    lpCmdLine,
                     int       nCmdShow)
{

Ja samainen koodi kääntyy kyllä kotona ilman linkkausongelmia.

Metabolix [29.07.2008 14:14:14]

#

WinMain ja main ovat kaksi aivan eri asiaa. Valitse IDEstäsi Windows-projekti Console-projektin sijaan, jos WinMainia käytät. Tätä voinee jostain projektin asetuksistakin muokata. Henkilökohtaisesti en näe mitään syytä käyttää WinMainia, se vain mutkistaa useimpia asioita (ja on Windows-spesifinen outous, mikä ei minua oikein innosta).

tneva82 [29.07.2008 14:34:06]

#

Metabolix kirjoitti:

Henkilökohtaisesti en näe mitään syytä käyttää WinMainia, se vain mutkistaa useimpia asioita

Jaah. int main(...) blaa blaa blaa sallii edelleen windowsin graaffisen sovelluksen teon? Noh tuollaisen se VC++ express edition loi automaattisesti kun tein win32 sovelluksen pohjan joten oletin sen soveltuvan käyttöön.

Metabolix [01.08.2008 08:44:59]

#

Toki. Konsoli-ikkunan olemassaoloa voi luultavasti säätää projektin asetuksista, tai jos sellainen kuitenkin ilmestyy, sen voi sulkea FreeConsole-funktiolla.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta