Форум программистов, компьютерный форум CyberForum.ru

Использование vector в dll - C++

Восстановить пароль Регистрация
 
Destr6790
0 / 0 / 0
Регистрация: 24.05.2016
Сообщений: 4
24.05.2016, 10:07     Использование vector в dll #1
У меня есть такой вопрос. Допустим у нас в dll есть структура, vector состоит из набора этих структур. Есть функция которая возвращает vector . Как правильно обратиться к этому вектору в реализации dll на VS? В результате нужно получить данные из структур.
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Убежденный
Системный программист
 Аватар для Убежденный
14200 / 6215 / 986
Регистрация: 02.05.2013
Сообщений: 10,356
Завершенные тесты: 1
24.05.2016, 10:15     Использование vector в dll #2
Сделай в dll функцию, которая будет возвращать нужную структуру из вектора.
Дешево и сердито.
Destr6790
0 / 0 / 0
Регистрация: 24.05.2016
Сообщений: 4
24.05.2016, 10:34  [ТС]     Использование vector в dll #3
Спасибо. Но у меня есть ещё один вопрос. Допустим мне нужно получить данный вектор, и чтобы я им мог пользоваться в реализации на VS?(без функций на получение данных структуры в dll)
Например,в vs чтобы получить функцию, которая возвращает тип int в VS
int(*sum1)(int, int);
(FARPROC &)sum1 = GetProcAddress(hDll1, "sum");
c = sum1(10, 50);
Как аналогичным способом получить вектор структур?
Или это нельзя сделать? Жду ваших советов. Заранее выражаю благодарность.
Убежденный
Системный программист
 Аватар для Убежденный
14200 / 6215 / 986
Регистрация: 02.05.2013
Сообщений: 10,356
Завершенные тесты: 1
24.05.2016, 11:00     Использование vector в dll #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Как-то так:
C++
1
2
3
4
5
6
7
8
9
10
typedef std::vector<mystruct> (_stdcall * tGetVector)(int, int);
tGetVector Func = (tGetVector)GetProcAddress(hDll1, "GetVector");
if (!Func)
{
    // Обработка ошибки.
}
else
{
    std::vector<mystruct> Vector = Func(123, 456);
}
Destr6790
0 / 0 / 0
Регистрация: 24.05.2016
Сообщений: 4
24.05.2016, 11:09  [ТС]     Использование vector в dll #5
Сейчас попробую. Ещё один вопрос. Саму структуру надо экспортировать из dll, чтобы пользоваться элементами вектора?(извиняюсь если это тривиальный вопрос)
Убежденный
Системный программист
 Аватар для Убежденный
14200 / 6215 / 986
Регистрация: 02.05.2013
Сообщений: 10,356
Завершенные тесты: 1
24.05.2016, 11:11     Использование vector в dll #6
Нет. Но клиентскому коду должно быть доступно объявление структуры,
иначе компилятор не будет знать, как с ней работать.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.05.2016, 11:17     Использование vector в dll
Еще ссылки по теме:

C++ Использование dll в c++
C++ Использование vector
C++ DLL не компилирует (использую vector, string, .lib)

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Destr6790
0 / 0 / 0
Регистрация: 24.05.2016
Сообщений: 4
24.05.2016, 11:17  [ТС]     Использование vector в dll #7
Огромное спасибо за ответы.
Yandex
Объявления
24.05.2016, 11:17     Использование vector в dll
Ответ Создать тему
Опции темы

Текущее время: 07:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru