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 :
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 array<Process^>^localAll = Process::GetProcesses();
Il faudrait egalement que lorsque mon object est détruit il désalloue ma mémoire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 template <typename Ptr> class Array : public vector<Ptr> { };
Mais comment est sur que ma classe Array ne prendra que des pointeurs, ...
Pour le moment la classe ressemble a ca :
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
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
Bon en gros j'ai besoin de votre avis sur comment implémenter en code natif C++ le container Array.
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(); }
Partager