How to create a window reference and use the reference on the window form


name the project addLib2
// addLib2.h
#pragma once
using namespace System;
namespace addLib2
{
public __gc class add
{
private:
double num1;
double num2;
public:
add();
add(double n1, double n2);
String *display();
__property double get_n1()
{
return num1;
}
__property double get_n2()
{
return num2;
}
};
}
// This is the main DLL file.
#include "stdafx.h"
#include "addLib2.h"
using namespace addLib2;
add::add()
{
num1 =0;
num2 = 0;
}
add::add(double n1, double n2)
{
num1 = n1;
num2 = n2;
}
String *add::display()
{
return String::Concat("the sum is ", (num1 + num2).ToString());
}


add the addLib2.dll to your project

10.
Add the label , textbox, button controls to the form.

Enter the codes below.
private: System::Void button1_Click(System::Object * sender, System::EventArgs * e)
{
double n1 , n2;
n1 = Convert::ToDouble(this->textBox1->Text);
n2 = Convert::ToDouble(this->textBox2->Text);
add *a1 = new add(n1,n2);
this->ansLabel->Text= a1->display();
}
1.
// convertTemp.h
#pragma once
using namespace System;
namespace convertTemp
{
public __gc class convert
{
private:
double celcius;
public:
convert();
convert(double c );
double cTof(double c);
__property double get_c()
{
return celcius;
}
__property void set_c(double c)
{
celcius = c;
}
};
}
// This is the main DLL file.
#include "stdafx.h"
#include "convertTemp.h"
using namespace convertTemp;
convert::convert()
{
celcius =0;
}
convert::convert(double c)
{
celcius = c;
}
double convert::cTof(double c)
{
return (c * 9/5) +32;
}
right click on reference and add convertTemp.dll
add the controls to your form

private: System::Void button1_Click(System::Object * sender, System::EventArgs * e)
{
double c,f;
c = Convert::ToDouble(this->textBox1->Text);
convert *con = new convert(c);
this->ansLabel->Text = Convert::ToString(con->cTof(c));
}
};
· getcurrent project

private: System::Void button1_Click(System::Object * sender, System::EventArgs * e)
{
this->label1->Text = Convert::ToString(System::DateTime::Now);
}
Create a program with 2 phrases
Phrase 1. Create three files
#pragma once
#using <mscorlib.dll>
using namespace System;
public __value class fraction
{
public:
fraction(void);
fraction(int n, int d);
void reduce();
String *display();
// overload the addition operator
static fraction op_Addition(fraction f1, fraction f2);
static fraction op_Subtraction(fraction f1, fraction f2);
static fraction op_Multiply(fraction f1, fraction f2);
static fraction op_Division(fraction f1, fraction f2);
private:
int numerator;
int denominator;
};
Fraction.cpp
#include "StdAfx.h"
#include ".\fraction.h"
#using <mscorlib.dll>
using namespace System;
fraction::fraction(void)
{
numerator =0;
denominator =1;
}
fraction::fraction(int n, int d)
{
numerator = n;
denominator = d;
}
String *fraction::display()
{
return String::Concat(numerator.ToString(), S"/", denominator.ToString());
}
fraction fraction::op_Addition(fraction f1, fraction f2)
{
if (f1.denominator == f2.denominator)
return fraction(f1.numerator + f2.numerator, f1.denominator );
else
return fraction(f1.numerator * f2.denominator + f2.numerator * f1.denominator,f1.denominator * f2.denominator);
}
fraction fraction::op_Subtraction(fraction f1, fraction f2)
{
if (f1.denominator == f2.denominator)
return fraction(f1.numerator - f2.numerator, f1.denominator );
else
return fraction(f1.numerator * f2.denominator - f2.numerator * f1.denominator,f1.denominator * f2.denominator);
}
fraction fraction::op_Multiply(fraction f1, fraction f2)
{
return fraction(f1.numerator * f2.numerator,f1.denominator* f2.denominator);
}
fraction fraction::op_Division(fraction f1, fraction f2)
{
return fraction(f1.numerator * f2.denominator,f1.denominator* f2.numerator);
}
void fraction::reduce()
{
int gcf = 1;
for (int i = 2; i <=(numerator < denominator? numerator:denominator);i++)
{
if (numerator % i==0 && denominator %i==0)
{
gcf =i;
}
}
numerator /= gcf;
denominator /= gcf;
}
// useFraction.cpp
// use fraction class
#include "stdafx.h"
#include "fraction.h"
#using <mscorlib.dll>
#using <system.windows.forms.dll>
using namespace System;
using namespace System::Windows::Forms;
int _tmain()
{
fraction f1 = fraction(3,4);
fraction f2 = fraction(1,2);
fraction f7 = fraction(4,8);
fraction f3,f4,f5,f6 ;
String *output;
f3 = f1 + f2;
f3.reduce();
f4 = f1 - f2;
f4.reduce();
f5 = f1 * f2;
f5.reduce();
f6 = f1/f2;
f6.reduce();
f7.reduce();
output = String::Concat(f3.display(), S"\n",f4.display(),S"\n",f5.display(), S"\n",f6.display(),S"\n",f7.display());
MessageBox::Show(output,"CIT126");
return 0;
}
Phrase 2 –
Create class library file.
‘fractionLibrary.h
And fractionLibrary.cpp
Copy fraction.h codes into fractionLibrary.h
Copy fraction.cpp codes into fractionLibrary.cpp
a. fractionLibrary.h
// fractionLibrary.h
#pragma once
using namespace System;
namespace fractionLibrary
{
public __value class fraction
{
public:
fraction(void);
fraction(int, int);
//use of __property allows users to use the private variables
//in their own methods.
__property int get_Numerator()
{
return numerator;
}
__property void set_Numerator(int value)
{
numerator = value;
}
__property int get_Denominator()
{
return denominator;
}
__property void set_Denominator(int value)
{
denominator = value;
}
//operator overloading page 400
static fraction op_Addition(fraction, fraction);
static fraction op_Subtraction(fraction, fraction);
static fraction op_Multiply(fraction, fraction);
static fraction op_Division(fraction, fraction);
String *display(void);
void reduce();
// ~fraction(void);
private:
int numerator;
int denominator;
};
b. fractionLibrary.cpp
// This is the main DLL file.
// This is the main DLL file.
#include "stdafx.h"
#include "fractionLibrary.h"
#using <mscorlib.dll>
using namespace System;
using namespace fractionLibrary;
fraction::fraction()
{
Numerator = 0;
Denominator = 1;
}
fraction::fraction(int n, int d)
{
Numerator = n;
Denominator = d;
}
fraction fraction::op_Addition(fraction f1, fraction f2)
{
if (f1.Denominator == f2.Denominator)
return fraction(f1.Numerator + f2.Numerator, f1.Denominator);
else
return fraction(f1.Numerator * f2.Denominator + f2.Numerator * f1.Denominator, f1.Denominator * f2.Denominator);
}
fraction fraction ::op_Subtraction(fraction f1, fraction f2)
{
if (f1.Denominator == f2.Denominator)
return fraction(f1.Numerator - f2.Numerator, f1.Denominator);
else
return fraction(f1.Numerator * f2.Denominator - f2.Numerator * f1.Denominator, f1.Denominator * f2.Denominator);
}
fraction fraction::op_Multiply(fraction f1, fraction f2)
{
return fraction(f1.Numerator * f2.Numerator, f1.Denominator * f2.Denominator);
}
fraction fraction::op_Division(fraction f1, fraction f2)
{
return fraction(f1.Numerator * f2.Denominator, f1.Denominator * f2.Numerator);
}
String *fraction::display()
{
return String::Concat(S"The fraction is ",Numerator.ToString(), S" / ", Denominator.ToString(), S"\n\n");
}
void fraction::reduce()
{
int gcf = 1;
for (int i = 2; i <=(Numerator < Denominator? Numerator:Denominator);i++)
{
if (Numerator % i==0 && Denominator %i==0)
{
gcf = i;
}
}
Numerator /= gcf;
Denominator /= gcf;
}
useFraction3.cpp
Put the codes in the initialization
public:
Form1(void)
{
InitializeComponent();
int n1,n2,d1,d2;
Random *r = new Random();
n1 = r->Next(1,11);
n2 = r->Next(1,11);
d1 = r->Next(1,11);
d2= r->Next(1,11);
this->textBoxN1->Text = Convert::ToString(n1);
this->textBoxD1->Text = Convert::ToString(d1);
this->textBoxN2->Text = Convert::ToString(n2);
this->textBoxD2->Text = Convert::ToString(d2);
}
Put this codes in the add button click event
buttonAdd_Click(System::Object * sender, System::EventArgs * e)
{
int n1,n2,d1,d2;
n1 = Convert::ToInt32(this->textBoxN1->Text);
n2 = Convert::ToInt32(this->textBoxN2->Text);
d1 = Convert::ToInt32(this->textBoxD1->Text);
d2 = Convert::ToInt32(this->textBoxD1->Text);
fraction f1 = fraction(n1,d1);
fraction f2 = fraction(n2,d2);
fraction f3;
f3 = f1 + f2;
f3.reduce();
this->labelN->Text = (f3.Numerator).ToString();
this->labelD->Text =(f3.Denominator).ToString();
}
Put this codes in the doAgain button click event
button1_Click(System::Object * sender, System::EventArgs * e)
{
int n1,n2,d1,d2;
Random *r = new Random();
n1 = r->Next(1,11);
n2 = r->Next(1,11);
d1 = r->Next(1,11);
d2 = r->Next(1,11);
this->textBoxN1->Text = Convert::ToString(n1);
this->textBoxD1->Text = Convert::ToString(d1);
this->textBoxN2->Text = Convert::ToString(n2);
this->textBoxD2->Text = Convert::ToString(d2);
}