Bonjour,

je souhaiterais porter une classe .NET en classe C++(en fait je viens de commencer un projet qui vise à implémenter en C++ les classes les plus importantes de .NET).

JE commence par celles que j'utilise en ce moment et il s'agit de la hgestion de processus System:iagnostics:rocess.
En code c++ managé je peux faire ce genre de choses :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
array<Process^>^localAll = Process::GetProcesses();
en code natif je dois faire un équivalent du array et pour le moment j'utilise la STL donc je me demande si faire un truc su genre serait judicieux :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
template <typename Ptr> 
class Array : public vector<Ptr> 
{ 
 
};
Il faudrait egalement que lorsque mon object est détruit il désalloue ma mémoire.
Mais comment est sur que ma classe Array ne prendra que des pointeurs, ...

Pour le moment la classe ressemble a ca :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
 
#include <vector>
using namespace std;
 
namespace System{
    namespace Diagnostics{
 
class ProcessStartInfo
{
public:
    friend class Process;
 
    ProcessStartInfo();
 
protected:
    PROCESS_INFORMATION        m_sProcessinfo;
};
 
 
 
class Process
{
public:
 
    Process(void);
    ~Process(void);
 
public:
    //static vector<Process>    GetProcesses();
    static void                Start(LPCTSTR tszName);
    //void                    Start(ProcessStartInfo& procinfo);
    CString                    GetProcessName();
    DWORD                    GetId();
 
protected:
    //static Process*            m_pThis;
 
    static ProcessStartInfo    m_ProcessStartInfo;
};
 
 
 
} //Diagnostics
} //System
Le but étant par la suite de faire quelque chose du style :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
Process *pProcess = NULL;
Array<Process> processes = Process::GetProcesses();
 
for (int i = 0; i < processes.GetCount(); ++i){
 
     pProcess = processes[i];
     pProcess->Kill();
}
Bon en gros j'ai besoin de votre avis sur comment implémenter en code natif C++ le container Array.