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 :
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 :
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 :
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 :
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.
Partager