Получить от DLL массив

211
17 марта 2018, 18:03

Можете считать этот вопрос дубликатом другой моей темы Общий вектор между библиотекой и приложением, но проблема в нём не решена.

Сразу к сути:

Мне нужно получить от библиотеки на C++ неизвестное заранее количество значений, т.е. получить массив/вектор или что-либо подобное.

Библиотеку на С++ подключаю к проге на C++CLI

//в библиотеке на C++
#define DLL __declspec(dllexport)
extern "C" {
    DLL void run();
}
//в проге на C++CLI
#define DLL __declspec(dllimport)
extern "C" {
    DLL void run();
}

Никакие типы, кроме стандартных char, int и т.д. не работают (std::string обрезает половину строки, std::vector вовсе выбивает ошибку при попытке чтения) В прошлой теме мне предлагали тупо убрать "extern "C"" и типа всё заработает, только в таком случае у меня просто появляется куча ошибок LNK2028, LNK2020, LNK2001, и ничего не работает.

Приведите, пожалуйста, работающий код, который может передать с помощью вектора или любого другова способа сразу несколько значений.

READ ALSO
std::optional, как вернуть значение из ф-ции

std::optional, как вернуть значение из ф-ции

В случае ошибки, я понимаю что можно вернуть std::nullopt, но при возврате конкретного значения, не компилируется, VS2017 ругается:

210
Запрет наследование от класса в c++

Запрет наследование от класса в c++

обьясните пож в чем тут роль virtual

213
Как загрузить скетч с одного Arduino на другой?

Как загрузить скетч с одного Arduino на другой?

Есть две Arduino Mega 2560Как можно загрузить скетч на одну из Arduino, используя USB кабель, ПК и другую Arduino?

190