Size: a a a

2021 February 16

LC

Love Sosa Chief keef in supapro.cxx
Danya
Иди читай cppreference
Спасибо
источник

LC

Love Sosa Chief keef in supapro.cxx
Danya
Нет, не типо
там нету метода который возращает булевсоке значение
источник

D

Danya in supapro.cxx
Love Sosa Chief keef
там нету метода который возращает булевсоке значение
И?
источник

LC

Love Sosa Chief keef in supapro.cxx
нужен то именно такой
источник

LC

Love Sosa Chief keef in supapro.cxx
или такого в плюсах нету?
источник

D

Danya in supapro.cxx
Ну значит тебе его придется написать его
источник

LC

Love Sosa Chief keef in supapro.cxx
Danya
Ну значит тебе его придется написать его
но нельзя же проверять с помощью кода на ошибки ексептион
источник

∆̷𝕟𝕕 in supapro.cxx
Здравствуйте! Есть проблема с использованием функций с dll. У меня есть функция get, например со следующей сигнатурой :
void getSmth(int& out);
использовать её, в другой программе, которая подключает данную dll, не выходит. Функция abort() вызывается.
Но если сигнатура функция следующая :
int getSmth();
То, все окей. В гугле не забанили, ничего не нашёл.
источник

П

Папа in supapro.cxx
Love Sosa Chief keef
но нельзя же проверять с помощью кода на ошибки ексептион
жаль
источник

IZ

Ilia Zviagin in supapro.cxx
Love Sosa Chief keef
но нельзя же проверять с помощью кода на ошибки ексептион
Можно
источник

IZ

Ilia Zviagin in supapro.cxx
∆̷𝕟𝕕
Здравствуйте! Есть проблема с использованием функций с dll. У меня есть функция get, например со следующей сигнатурой :
void getSmth(int& out);
использовать её, в другой программе, которая подключает данную dll, не выходит. Функция abort() вызывается.
Но если сигнатура функция следующая :
int getSmth();
То, все окей. В гугле не забанили, ничего не нашёл.
А что ОК?
Это вообще-то разные фукнции.
И с чего вызывается ABORT ?
источник

IZ

Ilia Zviagin in supapro.cxx
∆̷𝕟𝕕
Здравствуйте! Есть проблема с использованием функций с dll. У меня есть функция get, например со следующей сигнатурой :
void getSmth(int& out);
использовать её, в другой программе, которая подключает данную dll, не выходит. Функция abort() вызывается.
Но если сигнатура функция следующая :
int getSmth();
То, все окей. В гугле не забанили, ничего не нашёл.
Но так ты корову, конечно, не продашь — слишком мало информации.
источник

∆̷𝕟𝕕 in supapro.cxx
Ilia Zviagin
А что ОК?
Это вообще-то разные фукнции.
И с чего вызывается ABORT ?
в смысле работает
источник

IZ

Ilia Zviagin in supapro.cxx
∆̷𝕟𝕕
в смысле работает
Ну, так и используй, как работает... в чём проблема-то?
источник

DP

Denis Paukaev in supapro.cxx
∆̷𝕟𝕕
Здравствуйте! Есть проблема с использованием функций с dll. У меня есть функция get, например со следующей сигнатурой :
void getSmth(int& out);
использовать её, в другой программе, которая подключает данную dll, не выходит. Функция abort() вызывается.
Но если сигнатура функция следующая :
int getSmth();
То, все окей. В гугле не забанили, ничего не нашёл.
По такому описанию ничего сказать нельзя
источник

∆̷𝕟𝕕 in supapro.cxx
Ilia Zviagin
Ну, так и используй, как работает... в чём проблема-то?
Проблема в том, что мне надо именно сигнатуру с void и аутпут параметром
источник

∆̷𝕟𝕕 in supapro.cxx
Denis Paukaev
По такому описанию ничего сказать нельзя
хорошо, сейчас опишу лучше
источник

IZ

Ilia Zviagin in supapro.cxx
∆̷𝕟𝕕
Проблема в том, что мне надо именно сигнатуру с void и аутпут параметром
Ну ты вообще бредни написал, это разные функции и естественно они по-разному работают.

Но — странно — abort они не могут никак вызывать (если только внутри в них он не вызывается явно)
источник

∆̷𝕟𝕕 in supapro.cxx
Вот пример.

Не работает:
// .dll
extern "C" __declspec(dllexport) void getSmth(int* output)
{
 // some code to init output param
}

// Another project, witch include .dll
int* param = nullptr;
getSmth(param); // does not work. abort() is called


Работает
// .dll
extern "C" __declspec(dllexport) int getSmth()
{
 // some code
}

// Another project, witch include .dll
int param = getSmth(); // ok
источник

IZ

Ilia Zviagin in supapro.cxx
∆̷𝕟𝕕
Вот пример.

Не работает:
// .dll
extern "C" __declspec(dllexport) void getSmth(int* output)
{
 // some code to init output param
}

// Another project, witch include .dll
int* param = nullptr;
getSmth(param); // does not work. abort() is called


Работает
// .dll
extern "C" __declspec(dllexport) int getSmth()
{
 // some code
}

// Another project, witch include .dll
int param = getSmth(); // ok
А вот тут тебя ничего не смущает?

// Another project, witch include .dll
int* param = nullptr;
getSmth(param); // does not work. abort() is called
источник