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

C++

Войти
Регистрация
Восстановить пароль
 
Escave
0 / 0 / 0
Регистрация: 16.03.2013
Сообщений: 56
#1

Передача ссылки в функцию в DLL - C++

21.03.2015, 00:49. Просмотров 486. Ответов 3
Метки нет (Все метки)

Здравствуйте.

По этому мануалу сделал DLL https://msdn.microsoft.com/ru-ru/library/ms235636.aspx

Возникла проблема с передачей ссылок в функции, расположеные в DLL.

Допустим, в заголовочном файле DLL описал структуру и функцию, которая получает ссылку. Передаю из основной программы ссылку на переменную в эту функцию. В дебагере вижу, что часть данных сломаны. Если выровнять поля структуры, то всё ОК. А сейчас мне потребовалось передать в функцию, расположенную в DLL, ссылку на объект. И там такая же фигня. Код собирается без ошибок, все работает, но объект внутри этой функции получается "сломанным".

Если делаю эту функцию в основной программе и передаю туда ссылку, то всё ок.

Вопрос: есть ли какие-то особенности с передачей ссылок в dll? И как решить мою проблему (хочу передать ссылку в dll)?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.03.2015, 00:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Передача ссылки в функцию в DLL (C++):

Передача указателя на функцию-член - C++
Всем привет ! Необходимо передать функцию-член в качестве параметра другой функции-члену. Следующий код class Menu { ...

Передача типа указателя на функцию - C++
Всем привет. Недавно в теме начинающих возник вопрос, а можно ли передать тип (указатель на функцию) без использования typedef: ...

Вызвать функцию из dll с неопределённым числом параметров - C++
Нужно вызвать из dll функцию с неопределённым числом параметров. пока что работаю с таким вызовом char res; char (*dll) (char* ...);...

Кто может поделиться файлами ogg.dll, vorbis.dll и vorbisfile.dll - 32-х и 64-битными версиями? - C++
Движок перевожу на платформу Win64 и нужно, чтобы разрядность ЕХЕ и DLL совпадали, а в интернете искал 64-битные версии ogg.dll, vorbis.dll...

При компиляции DLL-проекта не создается DLL-ка - C++
Добрый день. создал в Visual Studio 2010 проект C+= типа DLL. В файл dllmain.cpp вставил вот такой код: // test.cpp: определяет...

Windows I/o без Kernel32.dll и Advapi32.dll - C++
Добрый день. Необходимо в Windows XP SP3 распечатать в стандартный поток "some text here" без прямого или косвенного использования...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
DrOffset
7102 / 4243 / 952
Регистрация: 30.01.2014
Сообщений: 7,025
21.03.2015, 00:53 #2
Escave, покажи код. Как передаешь, как dll реализована и т.п.
ValeryS
Модератор
6556 / 5022 / 464
Регистрация: 14.02.2011
Сообщений: 16,763
21.03.2015, 01:00 #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Escave Посмотреть сообщение
Если выровнять поля структуры, то всё ОК.
значит скомпилировано с разными ключами, которые поддерживают разное выравнивание
Escave
0 / 0 / 0
Регистрация: 16.03.2013
Сообщений: 56
21.03.2015, 01:13  [ТС] #4
Спасибо.

Я уже код начал копипастить. Флаги /Zp отличались в проекте с DLL и в основном проекте.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.03.2015, 01:13
Привет! Вот еще темы с ответами:

DLL - как подменить функцию, используя самодельную DLL? - C++ Builder
Очень прошу пособить, кому не трудно... . Проблема в целом не сложная: имеется сторонняя программа (только exe), которая при определенном...

Создание ссылки на функцию - C++ Builder
Осваиваю с++ и borland с++ в частности совсем недавно, столкнулся с проблемой создания ссылки на функцию/процедуру. Делаю так: typedef...

Не вызвать функцию с DLL - C++ Builder
Тут такая проблема с DLL!!! Обьясните, что я делаю не так Сама DLL #include <vcl.h> #include <windows.h> #include "Test.h" ...

Передача структуры в функцию - C++ Builder
В чужой библиотеке имеется структура(уже обьявлена в .h) typedef struct { char version; char hostname; char map; char...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
21.03.2015, 01:13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru