Código C++:
Ver original
struct NetxInfo { public: ULONG pid; WCHAR filename[MAX_PATH]; WCHAR pathname[MAX_PATH]; WCHAR protocol[10]; WCHAR state[MAX_PATH]; WCHAR srcip[MAX_PATH]; DWORD srcport; WCHAR destip[MAX_PATH]; DWORD destport; };
y tengo mi función donde creo un vector puntero y le asigno valores:
Código C++:
Ver original
vector<NetxInfo>* initialNetxes = new vector<NetxInfo>(); NetxInfo val; val.pid = 112; CopyString(L"explorer.exe", val.filename, MAX_PATH); CopyString(L"C:/Windows", val.pathname, MAX_PATH); CopyString(L"UDP", val.protocol, MAX_PATH); CopyString(L"SYN", val.state, MAX_PATH); CopyString(L"192.168.1.001", val.srcip, MAX_PATH); val.srcport = 444; CopyString(L"192.168.002", val.destip, MAX_PATH); val.destport = 6060; initialNetxes->push_back(val); val.pid = 113; CopyString(L"schost.exe", val.filename, MAX_PATH); CopyString(L"C:/windows", val.pathname, MAX_PATH); CopyString(L"TCP", val.protocol, MAX_PATH); CopyString(L"Waiting", val.state, MAX_PATH); CopyString(L"192.168.1.004", val.srcip, MAX_PATH); val.srcport = 425; CopyString(L"192.168.1.005", val.destip, MAX_PATH); val.destport = 1212; initialNetxes->push_back(val);
todo esto va bien el problema se está dando en la función donde intento leer los valores del vector puntero y lo hago de la siguiente forma:
Código C++:
Ver original
vector<NetxInfo>* conv = (vector<NetxInfo>*) source; pid = (*conv)[indice].pid; filename = (*conv)[indice].filename; pathname = (*conv)[indice].pathname; protocol = (*conv)[indice].protocol; state = (*conv)[indice].state; srcip = (*conv)[indice].srcip; srcport = (*conv)[indice].srcport; destip = (*conv)[indice].destip; destport = (*conv)[indice].destport;
nota: indice es un parámetro de la función que hace este proceso y le envío el indice del vector que quiero recuperar.
Espero puedan ayudarme.