powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Параметры со значениями по умолчанию в экспортируемых функциях DLL
14 сообщений из 14, страница 1 из 1
Параметры со значениями по умолчанию в экспортируемых функциях DLL
    #39034519
cpp2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Работает ли такое ? Проект с такими функциями в DLL компилируется без ошибок и каких-либо предупреждений. Но при попытке вызова такой функции из .NET появляется ошибка о разбалансировании стека. Ну мне не жалко, прописал явно все параметры. Но стоит ли их оставлять в DLL на будущее (на всякий случай) ? Или же удалить значения по умолчанию для входных параметров ? Может не из .NET, а при вызове из других языков будет работать ?
...
Рейтинг: 0 / 0
Параметры со значениями по умолчанию в экспортируемых функциях DLL
    #39034548
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В данном форуме принято задавать конкретные вопросы и подкреплять их кусками кода,
конфигурациями и скриншотами. В противном случае вам также могут отвечать философски
и с обилем метафор и иносказаний.
...
Рейтинг: 0 / 0
Параметры со значениями по умолчанию в экспортируемых функциях DLL
    #39034551
cpp2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonВ данном форуме принято задавать конкретные вопросы и подкреплять их кусками кода,
конфигурациями и скриншотами. В противном случае вам также могут отвечать философски
и с обилем метафор и иносказаний.

Ну раз такие фразы как "Параметры со значениями по умолчанию" и "экспорт функций из DLL" являются метафорами, философией и иносказанием, то вот куски кода:

Экспортируемая функция из DLL с последними двумя параметрами по умолчанию
Код: plaintext
1.
unsigned int __stdcall MyFunc(const unsigned int a, const TCHAR* b, const int c = 0, const int e = 2);



ну и вызов из C#.NET
Код: c#
1.
2.
[DllImport(DllName, CharSet = DllCharSet)]
internal static extern uint MyFunc(uint a, string b);
...
Рейтинг: 0 / 0
Параметры со значениями по умолчанию в экспортируемых функциях DLL
    #39034553
cpp2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ещё раз философский вопрос, на который можно дать философский ответ:
Работает ли в принципе такой вызов функции из DLL:

Код: plaintext
1.
2.
3.
4.
5.
//Функция в DLL:
unsigned int __stdcall MyFunc(const unsigned int a, const TCHAR* b, const int c = 0, const int e = 2);

//вызов её в другой программе и, возможно на другом языке:
unsigned int Result = MyFunc(5, "C++ DLL");



Из .NET идёт разбалансировка стека.
...
Рейтинг: 0 / 0
Параметры со значениями по умолчанию в экспортируемых функциях DLL
    #39034554
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cpp2015Из .NET идёт разбалансировка стека.
Естественно идёт. Ты же у объявлений поставил несовместимые соглашения вызова.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Параметры со значениями по умолчанию в экспортируемых функциях DLL
    #39034564
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cpp2015Из .NET идёт разбалансировка стека.
Про стек — это интересный и новый термин.

По теме, мне кажется вы рассуждаете не совсем верно. В данном случае вы предоставляете COM интерфейс для своего кода на C++. Для вызова этого COM интерфейса создаёте обёртки (wrapper) для вызова COM из .NET.

Все эти проблемы не зависят от языка программирования (если язык/реализация поддерживает вызов COM интерфейсов).
...
Рейтинг: 0 / 0
Параметры со значениями по умолчанию в экспортируемых функциях DLL
    #39034623
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cpp2015Ещё раз философский вопрос, на который можно дать философский ответ:
Работает ли в принципе такой вызов функции из DLL:



Не работает. Функция ожидает 4 аргумента, а про умолчания известно только компилятору на исходном языке, где объявлен прототип.
...
Рейтинг: 0 / 0
Параметры со значениями по умолчанию в экспортируемых функциях DLL
    #39034630
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
schiФункция ожидает 4 аргумента, а про умолчания известно только компилятору на
исходном языке, где объявлен прототип.
В С++ прототип объявляется на обеих концах. И эти объявления должны совпадать. Чего у
аффтара не наблюдается.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Параметры со значениями по умолчанию в экспортируемых функциях DLL
    #39034640
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovВ С++ прототип объявляется на обеих концах.
Что простите на концах происходит в C++?
...
Рейтинг: 0 / 0
Параметры со значениями по умолчанию в экспортируемых функциях DLL
    #39034641
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petravЧто простите на концах происходит в C++?
Повторяю медленно: прототип. функции. декларируется.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Параметры со значениями по умолчанию в экспортируемых функциях DLL
    #39034643
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovpetravЧто простите на концах происходит в C++?
Повторяю медленно: прототип. функции. декларируется.

Прототип? Вы, наверное, много программировали на JavaScript?

В мире C++ не используются термины «прототип», «декларировать» и «на обоих концах». А ваше высказывание «на обеих концах» — это даже и не по-русски уже.
...
Рейтинг: 0 / 0
Параметры со значениями по умолчанию в экспортируемых функциях DLL
    #39034649
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovВ С++ прототип объявляется на обеих концах. И эти объявления должны совпадать. Чего у
аффтара не наблюдается.


У автора написано "Возможно на другом языке". Другой язык, импортируя функцию из DLL про умолчания С++ ничего не знает, я к этому :)
...
Рейтинг: 0 / 0
Параметры со значениями по умолчанию в экспортируемых функциях DLL
    #39034651
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
schiДругой язык, импортируя функцию из DLL про умолчания С++ ничего не знает, я к
этому :)
Механизм параметров по умолчанию работает на вызывающей стороне. Код самой функции не
зависит от того как она объявлена.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Параметры со значениями по умолчанию в экспортируемых функциях DLL
    #39034654
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovschiДругой язык, импортируя функцию из DLL про умолчания С++ ничего не знает, я к
этому :)
Механизм параметров по умолчанию работает на вызывающей стороне. Код самой функции не
зависит от того как она объявлена.


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


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