Toon posts:

.NET c# en C++ sdk-classes dezelfde?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi ik heb een vraagje...

Ben bezig met een .Net project voor school. We moeten een Tangram spel onwikkelen in .NET. Het class model moet gemaakt worden in .NET C++ en het visuele gedeelte in c#.

Bij de classes heb ik ook een class "Point" zitten. met de standaard opzet van x en y coordinaat en de gebruikelijke functies.

In c# moet ik de funcitie van type "Graphics" Fillpolygon gebruiken. Deze functie vraagt als invoer een "Brush" type en een array van "Point"type alleen is dit een andere "Point" dan die wat ik gemaakt heb. Dus dan moet ik 1st mijn c++"Point" uitlezen in een C# "Point" en die als array doorgeven aan die funcitie. Werkt wel maar niet hoe ik het wil dus.

Ik Moet dus eigenlijk die c++ "Point"-class van mij zelf vervangen door de standaard "Point" class van .NET dezelfde als wat in C# gebruikt wordt. Dan kan ik mijn objecten gelijk meegeven aan die funcitie.

Ben er al een aantal dagen mee bezig en kkrijg het niet voor elkaar. Volgens mij zit die class in "GDIPlusTypes.h" dus moet ik "GDIPlus.h" volgens de help includen. Oke dat gedaan... 10000 errors er staat in die mooie help niet bij dat die GDIPlus vereist dat je "Windows.h" moet include. Ook uitgevonden Alleen nog 100 linker errors... Op iNet gelezen dat je ook nog "#pragma comment(lib, "gdiplus.lib") " eff erbij moet schrijven. Oke gedaan nu de laatste error:

LNK2019: unresolved external symbol _main referenced in function _mainCRTstartup

mijn eigenlijke vragen:
Is dit wel dezelfde class als die van C#? zoja hoe los ik die error op?

mzzls

  • Scare360
  • Registratie: Juli 2001
  • Laatst online: 20-08 18:43
Het antwoord is ja... ps: waarom gebruik je C++ voor het class model?

Verwijderd

Topicstarter
de bedoeling is dat we laten zien hoe die talen in .NEt allumaal samen kunnen werken. C++ gebruik ik omdat ik daar al langer in programmeer en omdat het visuele gedeelte in c# makkelijker te maken is dan in C++. visueel heb ik dus de keuze VB en C# -> C# duidelijker meer mijn stijl.

Trouwens als je die C++ objecten in een .NET assembly maakt. moet het ook nog eens Managed C++ code zijn. ook niet echt relax maaja

Ben ik niet gewoon iets vergeten te registreren? ZOu niet weten of dat moet om die header te gebruiken. Lijkt mij niet maaja "external symbol" lijkt me toch dat ik iets niet heb.

[ Voor 19% gewijzigd door Verwijderd op 09-05-2003 10:27 ]


  • Scare360
  • Registratie: Juli 2001
  • Laatst online: 20-08 18:43
Managed code is nou net wel relaxed! Waarom eigenlijk een custom Point klasse als het framework deze al levert? MyCustomPoint : Point, extend instead of reinvent!

Verwijderd

Topicstarter
Ben toch die framework Point aant gebruiken en mijn eigen Point heb ik weggedaan. Het probleem is net dat ik die ennuh error krijg als ik die Point van het framework gebruik toch?

Verwijderd

Topicstarter
Als ik die C++ gegenereerde assembly in C# gebruik moet het toch dezelfde Point class zijn anders pak ie um niet als invoer van die fillpolygon funcitie. Kan zijn dat ik fout zit hoor voor mij is ut ook nog vroeg vandaag. :)

Verwijderd

Topicstarter
overal gezocht ondertussen naar andere meldingen van unresolved external error. en elke x schijnt de oplossing te zijn iets te includen bij je project. Dat heb ik denk ik gedaan. Tenminste ik heb bij de project-opties resources->additional include directories die van de *.lib-file toegevoegd en bij de linker->general->additional library directory's die van de *.lib file toegevoed. Dus een van die moet toch wel de goeie zijn he... :)

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

LNK2019: unresolved external symbol _main referenced in function _mainCRTstartup
Je linkt als een executable maar hebt geen main functie aangemaakt. Heeft totaal niets met .NET of Points of wat dan ook te maken.

Professionele website nodig?


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Die pragma is trouwens wel netjes maar niet subiet nodig, libs kun je ook toevoegen in de projectfile (staat in docs). En dat je windows.h moet includen voordat je eender welke andere Windows-header include staat in Win32 programming hoofdstuk 1.1.1.1.1, dus logisch dat het later nooit meer herhaald wordt :)

Professionele website nodig?


Verwijderd

Topicstarter
curry684 schreef op 09 mei 2003 @ 13:00:
[...]

Je linkt als een executable maar hebt geen main functie aangemaakt. Heeft totaal niets met .NET of Points of wat dan ook te maken.
Het wordt een library voor het c# programma heb dus ook geen main funcite nodig... Kan ik die headers dan niet gebruiken in een library? Als ik hem compile met de clr /noentry zou die ut dan wle moeten doen? Ben nu weer thuis, nog geen .NET hier :( maaja

(Normaal als ik um in .NET gewoon BUILD krijg ik als laatste error No entrypoint ofzoiets. Dat los je dan op door heb met de CLR te compilen en /Noentry derachter)

[ Voor 48% gewijzigd door Verwijderd op 09-05-2003 13:37 ]


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Ik zei ook je dat je linkt als een executable maar geen main functie hebt. Als je als een library zou linken is die niet nodig :) Je hebt dus iets te hard doorgeklikt bij het aanmaken van het project. In de project options zou je het moeten kunnen veranderen naar DLL.

Professionele website nodig?


Verwijderd

Topicstarter
OK die error is opgelost.

Nu krijg ik het volgende probleem:
error:
Cannot implicitly convert type 'GdiPlus.Point*' to 'System.Drawing.Point'
dus typecasten:
error:
Cannot convert type 'GdiPlus.Point*' to 'System.Drawing.Point'

als die classes Point toch hetzelfde zijn zou hij die toch gewoon moeten accepteren!
Help! het project moet af! haha

Verwijderd

Topicstarter
Ik kan in .NET c++ toch ook namespaces gebruiken, maar waarom niet dezelfde als in c#?

Verwijderd

Topicstarter
Misschien beter gezegd: hoe kan ik de System.Drawing namespace gebruiken in C++ ?

  • MADG0BLIN
  • Registratie: Juni 2001
  • Nu online
Er is ook een edit knopje. Afbeeldingslocatie: http://gathering.tweakers.net/global/templates/got/images/icons/edit.gif

Dan hoef je niet telkens een nieuwe post te maken. :)

Verwijderd

Topicstarter
klopt maar dan gooit ie um niet omhoog. ;) ben aant w8ten kom niet verder. Zit op school en hier kan ik op het moment geen .com pagina's openen dus zoeken op inet werkt ook al niet echt relax.

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Verwijderd schreef op 12 mei 2003 @ 13:25:
klopt maar dan gooit ie um niet omhoog. ;)
Hardop toegeven dat je express na 7 en 85 minuten schupt is niet de beste manier om hulp te krijgen op een forum dat in de FAQ's schuppen binnen 24 uur expliciet verbied.

Professionele website nodig?


  • _Squatt_
  • Registratie: Oktober 2000
  • Niet online
Verwijderd schreef op 12 May 2003 @ 11:52:
Nu krijg ik het volgende probleem:
error:
Cannot implicitly convert type 'GdiPlus.Point*' to 'System.Drawing.Point'
dus typecasten:
error:
Cannot convert type 'GdiPlus.Point*' to 'System.Drawing.Point'
Ik heb geen verstand van .net/c# maar uit de error lijkt het alsof je een pointer-naar-een-GdiPlus.Point wil gebruiken als een object 'System.Drawing.Point'.

"He took a duck in the face at two hundred and fifty knots."

Pagina: 1