Home
IToolS
News
Feedback
Resources
Samples
Download
Documents
Sito
Web
Search
Login
My Blog
My Blog
Blog Part:
Title:
Pane:
Insert:
Add Module
Utilizzare assembly .NET in C++
by
lupok
on
venerdì 23 novembre 2012 10:12
Per prima cosa creiamo una nuova soluzione vuota con Visual Studio:
Poi aggiungiamo un progetto Win32 Console Application, tasto destro sulla Solution quindi Add->New Project e selezionare Win32 Console Application:
All'apertuta del Wizard che permette di configurazione del progetto C++, click su "Finish" per confermare le opzioni predefinite.
Ora aggiungiamo un nuovo progetto .NET di tipo Class Library:
Nel nuovo progetto Class Library è presente la classe Class1 entro la quale aggiungiamo un metodo che poi andremo ad utilizzare nel progetto C++ (il metodo svolgerà un'operazione banale in quanto scopo di questo esempio è mostrare l'interoperabilità tra C++ e .NET).
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace CLRLibrary
{
public class Class1
{
public void SaveList(List
numbers, String path)
{
using (System.IO.StreamWriter sw = new System.IO.StreamWriter(path))
{
numbers.ForEach(n => {
sw.WriteLine(String.Format("Number: {0}", n));
});
sw.Close();
}
}
}
}
Come si vede dal codice riportato sopra il metodo accetta in ingresso una lista di interi e li salva sul file specificato dal parametro "path".
A questo punto dobbiamo importare l'assembly .NET che contiene la classe "Class1" nel progetto C++ per poterlo utilizzare, quindi trasto destro sul progetto C++ e selezionare "References...":
Click su "Add New Reference..." e spuntiamo il progetto .NET che abbiamo creato un precedenza:
Infine per poter utilizzare classi .NET è necessario abilitare il supporto CLR per il progetto C++, quindi tasto destro sul progetto C++ selezioniamo Properties e nel menu a lista "Common Language Runtime Support" selezioniamo "Common Language Runtime Support /clr":
Ora è possibile scrivere codice .NET nel progetto C++, in particolare utilizzeremo la classe Class1 per salvare su file una lista di numeri:
// C++Application.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
using namespace System;
using namespace System::Collections::Generic;
int _tmain(int argc, _TCHAR* argv[])
{
List
^ numbers = gcnew List
(gcnew cli::array
{ 1, 2, 3 });
CLRLibrary::Class1^ class1 = gcnew CLRLibrary::Class1();
class1->SaveList(numbers, "c:\temp\numbers.txt");
return 0;
}
Eseguendo il progetto C++ sarà generato il seguente file:
Per abilitare il debug del codice .NET dal progetto C++ è necessario impostare la proprietà "Debugger Type" presente nello opzioni di progetto a "Mixed":
File Under:
Blogs
My Blog
Print
Author
lupok
My Blog
0 comment(s) so far...
Tags
OPCUA
(1)
ITOOLS
(1)
TEXTTOSPEECH
(1)
PropertyGrid
(1)
FilteredPropertyGrid
(1)
Filtered
(1)
Archive
<<
febbraio 2025
>>
l
m
m
g
v
s
d
27
28
29
30
31
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
28
1
2
3
4
5
6
7
8
9
Quick links
Microsoft
Borsa italiana
Iprel
IToolS
DotNetNuke store
Ideone
Favorites
Copyright 2025 by AS.it
Termini di Utilizzo
Privacy