[C++] .Net programma runt niet

Pagina: 1
Acties:
  • 52 views sinds 30-01-2008

  • mandroid
  • Registratie: Juli 2002
  • Laatst online: 01-02 07:50
Hallo,

Dit jaar heb ik op unief de basisprincipes van c++ geleerd, dit had ik nu graag een beetje uitgebreid naar onderandere windows forms (dus geen dos venstertjes meer).

Nu heb ik een boek dat beschrijft hoe je dat moet doen in MS VS.Net

Ik maak bv een eenvoudige form aan als volgt :
CppForm.h
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#using <mscorlib.dll>
#using <System.dll>
#using <System.Windows.Forms.dll>
#using <System.Drawing.dll>

using namespace System;
using namespace System::ComponentModel;
using namespace System::Windows::Forms;
using namespace System::Drawing;

__gc public class CppForm : public Form{
private:
    Button* btn1;
    Button* btn2;
    void Setup_Buttons();
public:
    CppForm();
};


CppForm.cpp
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include "CppForm.h"

CppForm::CppForm(){
    Text = S"Test Form";                            // dit komt in de titelbalk
    FormBorderStyle = FormBorderStyle::Fixed3D;     // maakt een niet aanpasbare 3D rand
    Width = 300;                                    // breedte een hoogte
    Height = 300;                                   // kon ook via size
    Setup_Buttons();
    MaximizeBox = false;
}

void CppForm::Setup_Buttons(){
    // voegt de knoppen toe
    // een OK knop
    btn1 = new Button();
    btn1->Text = S"OK";                             // tekst op de knop
    btn1->Size = System::Drawing::Size(70,25);      // grootte in pixels
    btn1->Location = Point(130,225);
    Controls->Add(btn1);

    // een CANCEL knop
    btn2 = new Button();
    btn2->Text = S"Cancel";                             // tekst op de knop
    btn2->Size = System::Drawing::Size(70,25);      // grootte in pixels
    btn2->Location = Point(210,225);
    Controls->Add(btn2);
}


en de main wordt :
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
#include "CppForm.h"
#include <iostream>

using namespace std;

int main(){
    cout << "Forms Example" << endl;

    // Nieuw formulier aanmaken

    Application::Run(new CppForm());
    return 0;
}


Dit maakt bij mij een eenvoudig windows form aan, met een cancel en een OK knop. Op mn andere computer (waarop geen VS.Net staat) wil dit echter totaal niet runnen. Dus vermoed ik dat je een bepaalde .Net interpreter ofzo moet hebben om dit programmatje te runnen.

Dit wil ik dus niet. Kan ik dit ook .Net onafhankelijk compileren zodat het ook op andere computers kan runnen ?

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:52
Logisch, je hebt de .NET runtime nodig om .NET programma's te runnen.

Het antwoord op je vraag is dus: nee.

Je C++ code wordt naar IL gecompileerd, en die moet dan door de JIT compiler van de CLR naar native code gecompileerd worden at runtime.

Die .NET runtime kan je trouwens laten installeren door Windows Update.

[ Voor 83% gewijzigd door whoami op 07-07-2004 15:51 ]

https://fgheysels.github.io/


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-05 23:07

.oisyn

Moderator Devschuur®

Demotivational Speaker

Als je echt met .net aan de slag wilt kun je dat nu nog beter met C# doen. De syntax is bijna hetzelfde als C++, alleen het is volledig .Net. Als het je om C++ gaat dan zou ik het gewoon bij native code houden, en geen managed C++ (dus waarmee je .Net dingen kunt doen). Dit omdat de hele managed C++ syntax op de schop gaat bij de volgende visual studio, en er een nieuwe syntax komt die veel beter aansluit op puur C++, en bovendien gestandaardiseerd is.

Zie http://microsoft.sitestream.com/TechEd/DEV/DEV333_files/ voor een presentatie van de nieuwe syntax en features in VS.Net 2005

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.


  • mandroid
  • Registratie: Juli 2002
  • Laatst online: 01-02 07:50
Bedankt voor de uitleg
.oisyn schreef op 07 juli 2004 @ 16:18:
Als het je om C++ gaat dan zou ik het gewoon bij native code houden, en geen managed C++ (dus waarmee je .Net dingen kunt doen).
Ik zou het dus idd beter met native C++ code gaan doen.
Iemand die daar een goede tutorial voor weet staan ?

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

lord-evil schreef op 07 juli 2004 @ 16:30:
Bedankt voor de uitleg


[...]


Ik zou het dus idd beter met native C++ code gaan doen.
Iemand die daar een goede tutorial voor weet staan ?
Ja, onze P&W FAQ - C en C++ ;)

Verder redelijk Google-topic, dus dicht :)

Professionele website nodig?


Dit topic is gesloten.