Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Вектор структур / 2 сообщений из 2, страница 1 из 1
17.11.2015, 06:44
    #39105119
aziker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вектор структур
VS2015, Win32.
Заполнение вектора структур InfoCert.
Вопрос:
Создать указатель на структуру? Если да, то можно пример.


// DataBase.h=========================================================

#pragma once
#include <wincrypt.h>
#include <vector>

namespace Program {
class DataBase
{
public:
DataBase();
~DataBase();

typedef struct { //Структура Info
LPTSTR cName;
LPCTSTR SerialNumber;

}Info;

int n = 100; //Максимальное количество объектов структуры
int i; //индекс для номера объекта, для использования цикла


std::vector<Info> InfoCert; //вектор InfoCert
std::vector<Info>::iterator it; //итератор it
Info obj; //обЪект вектора obj


void setczName(LPTSTR cName, int i); //фукнция для заполнения cName
LPCTSTR getcName(int i); //фукнция для получения cName

void setSerialNumber(LPCTSTR SerialNumber, int i); //фукнция для заполнения SerialNumber
LPCTSTR getSerialNumber(int i); //фукнция для получения SerialNumber

};
}






//DataBase.cpp==================================================================
#include "stdafx.h"
#include "DataBase.h"
#include <windows.h>

namespace Program {
DataBase::DataBase()
{
}

DataBase::~DataBase()
{
}

void DataBase::setcName(LPTSTR cName, int i) {
InfoCert.push_back(obj);
InfoCert.at(i).cName = cName;
}

LPCTSTR DataBase::getcName(int i) {
for (it = InfoCert.begin(); it != InfoCert.end(); it++) {
it->cName = InfoCert.at(i).cName;
return (InfoCert.at(i).cName);
}
}

void DataBase::setSerialNumber(LPCTSTR SerialNumber, int i) {
InfoCert.push_back(obj);
InfoCert.at(i).SerialNumber = SerialNumber;
obj.SerialNumber = SerialNumber;
}


LPCTSTR DataBase::getSerialNumber(int i) {
for (it = InfoCert.begin(); it != InfoCert.end(); it++) {
it->SerialNumber = InfoCert.at(i).SerialNumber;
return (InfoCert.at(i).SerialNumber);
}
}
}






// Другой класс=================================================================
//AddList.cpp====================================================================

#include "DataBase.h"
#include <vector>
#include <windows.h>

namespace Program{

AddInList::AddInList()
{
}


AddInList::~AddInList()
{
}


DataBase s; //Объект класс DataBase



//======================================================================
UINT AddInList::addCert(HWND hList) {


for (int i = 0; i<sizeof(s.InfoCert); i++) { //Цикл для заполнения вектора


// тут должна быть функция которая получает значение pszName
// для понимания вопроса функцию не писала

pszName =cName;
s.setcName(cName, i);

//Вызов метода класса DataBase для заполнения первого свойства


// тут должна быть функция которая получает значение pCryptKeyProvInfo->pwszContainerName
// для понимания вопроса функцию не писала

pCryptKeyProvInfo->pwszContainerName = SerialNumber;
s.setSerialNumber(SerialNumber, i);

//Вызов метода класса DataBase для заполнения второго свойства объекта

}
}
}
...
Рейтинг: 0 / 0
17.11.2015, 12:22
    #39105419
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вектор структур
aziker,

храни в структуре не указатели, а сами строки, std::string, будет легче раз в 10.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Вектор структур / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]