C++ Automation

Pagina: 1
Acties:

  • robinvd
  • Registratie: November 2002
  • Laatst online: 07-06 12:49
Hey,

Ik heb al een tijdje gezocht en ben ook al aant zooien maar tis nog steeds niet gelukt.
Ik wil in Visual C++ .NET een dll maken die in in VB bij references aan kan vinken en die dan een aantal classes bevat die ik in vb weer kan gebruiken (volgens mij heet dat Automation). Zo kan ik een engine proberen te maken in C++ die ik in VB gebruik; voordeel: alles is veeeeel sneller. Maar..... hoe werkt dit en wat voor project moet ik kiezen enzo.
Alvast ThNx

Robin

  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Een COM (ActiveX) object is dat. Je kan een .net classe maken en die omzetten naar een COM Object.

http://www.aspzone.com/articles/john/dotNETInterop/

We adore chaos because we like to restore order - M.C. Escher


  • robinvd
  • Registratie: November 2002
  • Laatst online: 07-06 12:49
Nope, sorry maar dit ist niet, dit is in C# en niet echt wat ik zoek.
Tis een soort iets van:

VB:
Dim blabla as blabla

en in C++ moet je dan een dll maken met de class blabla die je zo in vb kan aanroepen.

  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Dan niet :P zelf weten. Als jij denkt dat wat ik gegeven heb het niet is moet je er ook maar niet aan wagen. Dan heb je te weinig kennis van VS.Net. Probeer het eens met QBasic...

Ok, wacht...sorry..verkeerde link gepost...het moet de andere kant op...

Probeer deze eens: http://www.csharphelp.com/archives/archive257.html

We adore chaos because we like to restore order - M.C. Escher


  • robinvd
  • Registratie: November 2002
  • Laatst online: 07-06 12:49
tja.... QBasic, liever niet, keb liever c++, vb kan ik nu wel, ik ben dus ook een newbie in c++, kwil et gewoon (liefst asap) leren, tja dat kan niet, weet ik ook wel, dus wil ik met 1 ondw. beginnen. Maar... toch bedankt.

  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

RvD2002 schreef op 14 november 2002 @ 16:39:
tja.... QBasic, liever niet, keb liever c++, vb kan ik nu wel, ik ben dus ook een newbie in c++, kwil et gewoon (liefst asap) leren, tja dat kan niet, weet ik ook wel, dus wil ik met 1 ondw. beginnen. Maar... toch bedankt.
Als je een newbie ben met c++ zou ik zeker niet aan com objecten gaan beginnen. Zoiezo niet in C++ :p Probeer het eens met C#

We adore chaos because we like to restore order - M.C. Escher


  • robinvd
  • Registratie: November 2002
  • Laatst online: 07-06 12:49
Is C# ook snel???? Kijk, ik wilde eigenlijk in VB Direct3D doen en dat lukt... maarja, vb is tè sloom. Dus d8 ik: C++. Dat ist gewoon.

  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

'De snelheid van code hangt af van de programmeur die het gemaakt heeft' iseen beroemd gezegde.

Maar het hangt ook een beetje af van de taal/compiler. C++ in a managed (.Net) omgeving is net zo snel als C# aangezien het uiteindelijk 1 pot nat is. Ik geloof ook dat je met VS.Net nog 'normale' C++ apps kan maken en die zijn potentieel iets sneller dan de managed, maar het zal weinig schelen. In de toekomst zal waarschijnlijk de managed zelfs sneller zijn. Alles is iig sneller van VB v6 :+

COM is al vrij lastige materie voor een newbie, maa COM objecten maken in C++ is nog iets lastiger. Of dat in VS.Net anders is durf ik niet te zeggen, maar ik ben bang van niet.

We adore chaos because we like to restore order - M.C. Escher


  • robinvd
  • Registratie: November 2002
  • Laatst online: 07-06 12:49
Keej, bedankt, ik ga toch es kijken in C# of ik dezelfde resultaten (maar sneller) kan bereiken dan als in VB6

Verwijderd

Visual C bied als handige/snelle ontwikkel methode ATL waarmee je com dll's en exe's kunt maken. klein beetje kennis van achterliggende com fundementals is wel nodig (beetje idl kennis tijdens het toevoegen van functies bv) maar er is prima/snel mee te werken.

  • whoami
  • Registratie: December 2000
  • Laatst online: 15:58
RvD2002 schreef op 14 november 2002 @ 16:47:
Is C# ook snel???? Kijk, ik wilde eigenlijk in VB Direct3D doen en dat lukt... maarja, vb is tè sloom. Dus d8 ik: C++. Dat ist gewoon.


Het lijkt mij logisch dat, als je DirectX in VB gebruikt of in VC++, dat dat dan in beide talen even snel is. (het uitvoeren van de DX code dan). Er wordt nl. gebruik gemaakt van dezelfde dll. Dat complexe berekeningen die je zelf moet doen in VB trager zijn dan in C++, daar kan ik inkomen ja.

C# (.NET) maakt gebruik van een soort VM (als je gebruik maakt van 'managed code' that is). Het opstarten van een .NET programma duurt iets langer dan het opstarten van een native programma, omdat de IL-code van dat .NEt programma nog moet gecompileerd worden door de JIT naar native code.

https://fgheysels.github.io/


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03:21

.oisyn

Moderator Devschuur®

Demotivational Speaker

whoami schreef op 14 November 2002 @ 22:26:
Het lijkt mij logisch dat, als je DirectX in VB gebruikt of in VC++, dat dat dan in beide talen even snel is. (het uitvoeren van de DX code dan). Er wordt nl. gebruik gemaakt van dezelfde dll. Dat complexe berekeningen die je zelf moet doen in VB trager zijn dan in C++, daar kan ik inkomen ja.
klopt helemaal :)
Een modelviewer of iets dergelijks is goed te doen in VB. Zodra je er een echt complex iets mee wilt maken zul je moeten overstappen naar een taal die wat beter en sneller met grote datasets overweg kan, zoals C++.
C# (.NET) maakt gebruik van een soort VM (als je gebruik maakt van 'managed code' that is). Het opstarten van een .NET programma duurt iets langer dan het opstarten van een native programma, omdat de IL-code van dat .NEt programma nog moet gecompileerd worden door de JIT naar native code.


hmm, dat is niet het idee van JIT... JIT = Just In Time, wat dus betekent dat je code net optijd wordt gecompiled voordat het wordt uitgevoerd. Dit zal dus over het algemeen niet voor een langere opstarttijd moeten zorgen, aangezien methoden en dergelijke pas worden gecompileerd als ze worden aangeroepen. Als alles van tevoren wordt gecompileerd is het geen JIT meer ;)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • whoami
  • Registratie: December 2000
  • Laatst online: 15:58
.oisyn schreef op 14 november 2002 @ 22:48:

hmm, dat is niet het idee van JIT... JIT = Just In Time, wat dus betekent dat je code net optijd wordt gecompiled voordat het wordt uitgevoerd. Dit zal dus over het algemeen niet voor een langere opstarttijd moeten zorgen, aangezien methoden en dergelijke pas worden gecompileerd als ze worden aangeroepen. Als alles van tevoren wordt gecompileerd is het geen JIT meer ;)
Hmm.. Even nuanceren.
Als een .NET programma opgestart wordt, dan gaat de CLR de code die nodig is om het programma te starten (oa dus de code in het main entry point) gaan compilen van IL naar native code.
Als er gedurende 'program execution' een method wordt uitgevoerd die nog niet werd uitgevoerd, dan wordt deze gecompiled naar native code. Als er op een later ogenblijk dezelfde method weer uitgevoerd wordt, dan hoeft deze niet meer naar native code gecompiled te worden.
Bij het opstarten van het programma, wordt dus niet de volledige code in 1x gecompileerd.

https://fgheysels.github.io/


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03:21

.oisyn

Moderator Devschuur®

Demotivational Speaker

ah I see, dus wat jij bedoelt is dat het natuurlijk wel zo is dat in het begin alles nog gecompiled moeten worden, waardoor het even duurt voordat het programma 'op gang komt'

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

En dan heb je in een managed omgeving ook nog die fabelhaftige garbage collector die net besluit rommel op te gaan ruimen op het moment dat je 3d engine bezig is met het mooiste meest spectaculaire 'dit moet absoluut vloeiend' stukje :)
Pagina: 1