|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
08.11.2013, 20:06 | #1 |
Новичок
Джуниор
Регистрация: 08.11.2013
Сообщений: 4
|
Делфийская DLL и основная программа C++, передача агрументов туда-сюда
Здравствуйте!
Имеется DLL: Код:
Осн. прога: Код:
Заголовок: Код:
Почему в C++ входной параметр воспринимается как ссылка, а выходной - как ссылка ссылки? При этом, если основная прога написана на Делфи, то всё ожидаемо: и входной, и выходной параметры воспринимаются как ссылки на числа. Извращался по всякому. И cdecl ставил, и var вместо out. Один фиг... Это так задумано, или я где-то накосячил? Полдня лопатил всемирную помойку, ничего не нашёл. Подскажите, плз., если кто сталкивался. Последний раз редактировалось MrGalaxy; 09.11.2013 в 12:48. Причина: какие-то лишние звёздочки сами по себе были вставлены при копировании, убрал их |
08.11.2013, 22:37 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
А ты не ставь Out вообще. Пусть туда просто указатель передается.
P.S. Если честно я не очень понял смысл функции в ДЛЛ...
I'm learning to live...
|
08.11.2013, 22:42 | #3 |
Участник клуба
Регистрация: 07.12.2011
Сообщений: 1,025
|
function GetValue(PM:Pinteger; var PN:Pinteger): BOOL; stdcall; Export;?
Не стесняемся, плюсуем!
|
08.11.2013, 23:11 | #4 |
Новичок
Джуниор
Регистрация: 08.11.2013
Сообщений: 4
|
Без комментариев.
Я же писал, что и var пробовал, и разные типы указателей. Всё без толку. А от типа функции вообще ничего не зависит, хоть void (procedure) ставь. Последний раз редактировалось Stilet; 08.11.2013 в 23:57. |
08.11.2013, 23:57 | #5 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
09.11.2013, 00:17 | #6 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
А глюк вот где:
Код:
Почему бы не динам. загрузка? Код:
В dll, доп. флаг eport не нужен, если вы сами закинули функцию в exports. |
09.11.2013, 11:08 | #7 | |
Новичок
Джуниор
Регистрация: 08.11.2013
Сообщений: 4
|
Цитата:
bool после typedef. Процедура описывается войдом. А я по Вашему как загружаю? Код посмотрите. Действительно, работает. Спасибо. |
|
09.11.2013, 11:18 | #8 |
Новичок
Джуниор
Регистрация: 08.11.2013
Сообщений: 4
|
В общем, накосячил не я. Это - особенность делфийских out и var, они добавляют лишнюю ссылку. Объяснили на Киберфоруме.
DLL переписал: Код:
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Dll и основная форма (взаимосвязь) | fbus | Работа с сетью в Delphi | 9 | 16.04.2011 03:27 |
Основная программа и функция расположены в разных файлах. | Марат05 | C++ Builder | 1 | 10.04.2011 19:05 |
Основная программа и функция расположены в разных файлах. | Марат05 | Общие вопросы C/C++ | 1 | 01.04.2011 19:09 |
Движение кртинки туда сюда | Fizerator | Общие вопросы Delphi | 5 | 09.02.2011 20:38 |
C++: 3 класса, + основная программа | MR_Andrew | Фриланс | 13 | 22.04.2010 20:17 |