Einstiegspunkt muss definiert werden ?

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.
Antworten
Kezaar
Beiträge: 7
Registriert: 06.11.2012, 19:18

Einstiegspunkt muss definiert werden ?

Beitrag von Kezaar »

Hi,

Arbeitsumgebung:
Betriebssystem: Win7 ( 64 bit )
Software: Visual Studio 2012 Express

Vor einigen Tagen begann mein Versuch, mit DirectX 10 und 11 zu beginnen. Darauf hin habe ich die den benötigten Quellcode compilieren und linken wollen. Sowohl Debug als auch im Release-Modus. Jedesmal bekomme ich die Meldung, das kein Einstiegspunkt definiert ist und es zu einem Compilierfehler kommt. Faszinierender Weise habe ich dieses Phänomen auch, wenn ich versuche, mit SDL zu arbeiten.

Versuche ich eine Software zu compilieren, die keinerlei solcher programmierzusätze besitzt, lässt sich das programm ohne probleme ausführen.
Benutzeravatar
Schrompf
Moderator
Beiträge: 4886
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas
Wohnort: Dresden
Kontaktdaten:

Re: Einstiegspunkt muss definiert werden ?

Beitrag von Schrompf »

Du hast zwar leider weder Code noch die tatsächliche Fehlermeldung gepostet, aber ich rate mal ins Blaue: Der Compiler vermisst eine main().

Falls Du Dein Projekt auf "Win32-Anwendung" gestellt hast, lautet die Startfunktion WinMain() - siehe http://msdn.microsoft.com/en-us/library ... s.85).aspx

Falls Du Dein Projekt auf "Konsolenanwendung" gestellt hast, lautet die Startfunktion wie bei Standard-C++ "int main(int argc, char** argv)"

Je nach Deiner Projekteinstellung muss eine dieser Funktionen da sein, sonst meckert der Compiler.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Kezaar
Beiträge: 7
Registriert: 06.11.2012, 19:18

Re: Einstiegspunkt muss definiert werden ?

Beitrag von Kezaar »

Es handelt sich um das EmptyProject11 aus dem SampleBrowser von DirectX June 2010.

meine main funktion ist wie folgt innerhalb meiner win32-anwendung definiert:
int WINAPI wWinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow )
Niki
Establishment
Beiträge: 309
Registriert: 01.01.2013, 21:52

Re: Einstiegspunkt muss definiert werden ?

Beitrag von Niki »

Das ist schon mehr als merkwürdig. Der Einstiegspunkt ist definitiv korrekt. Das EmptyProject11 lässt sich hier auch ohne weiteres kompilieren. Allerdings benutze ich VS 2010 Professional, und kein VS 2012 Express. Vielleicht ist ja bei der Projektkonvertierung von 2010 nach 2012 was schiefgelaufen.

Neben dem was Schrompf schon sagte, kann ich mir nur noch vorstellen das die .cpp Dateien nicht kompiliert werden. Mach mal irgendeinen Syntaxfehler in EmptyProject11.cpp. Wenn der Compiler da nicht meckert, dann wird die Datei nicht kompiliert, denn Syntaxfehler kommen vor Linkerfehlern.

Nun weiß ich nicht mehr wie das in VS 2012 funktioniert, aber vielleicht ist es ja genau so wie in VS 2010. Im Solution Explorer, klicke EmptyProject11.cpp mit der rechten Maustaste an und wähle Properties. Unter Configuration Properties -> General, stell sicher das:

Excluded From Build: No
Item Type: C/C++ compiler

Sorry für die Englischen Begriffe aber ich habe keinen Deutschen Compiler installiert :)
Benutzeravatar
Jonathan
Establishment
Beiträge: 2398
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: Einstiegspunkt muss definiert werden ?

Beitrag von Jonathan »

Mich macht das wWinMain etwas stutzig. Scheint die Unicode-Variante von WinMain zu sein, vielleicht entspricht das aber nicht den Projekteinstellungen.
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Benutzeravatar
kimmi
Moderator
Beiträge: 1405
Registriert: 26.02.2009, 09:42
Echter Name: Kim Kulling
Wohnort: Luebeck
Kontaktdaten:

Re: Einstiegspunkt muss definiert werden ?

Beitrag von kimmi »

Das klingt merkwürdig. Schau doch mal nach, für welches Subsystem gebaut wird. Gehe dazu auf dein projekt -> rechte Maustaste -> Linker -> System: was steht hier bei dem Schalter SubSystem? Für eine WinMain sollte hier so etwas stehen wie /SUBSYSTEM:WINDOWS .

Gruß Kimmi
Niki
Establishment
Beiträge: 309
Registriert: 01.01.2013, 21:52

Re: Einstiegspunkt muss definiert werden ?

Beitrag von Niki »

Jonathan hat geschrieben:Mich macht das wWinMain etwas stutzig. Scheint die Unicode-Variante von WinMain zu sein, vielleicht entspricht das aber nicht den Projekteinstellungen.
Ja, wWinMain ist die Unicode-Variante :) Der Linker sucht nach WinMain oder wWinMain und benutzt dann die Variante die er findet.
Antworten