DLL доступ к данным приложения - PullRequest
0 голосов
/ 01 марта 2012

Я знаю, что подобные вопросы задавались ранее, но мне все еще неясно.

В моем приложении есть класс, скажем ClassAppGraph, для представления какого-либо графика. Мне нужно написать DLL, которая анализирует объект ClassAppGraph и что-то делает.

Как моя DLL может получить доступ к объекту ClassAppGraph из приложения?

Я знаю, что могу послать указатель на этот объект из приложения в DLL, но тогда как DLL узнает, как выглядит класс, каковы его члены и функции данных? Включил ли я в свой проект DLL файл .h, который включает объявление класса приложения?

Есть ли другой дизайн, который я могу сделать для такой ситуации?

Ответы [ 2 ]

0 голосов
/ 01 марта 2012

Я бы поместил класс и реализацию ClassAppGraph в DLL, а затем в приложении использовал бы реализацию из DLL. Скорее всего, я бы на самом деле сделал ClassBaseGraph для DLL, и если приложение нуждается в настройке класса, оно может его унаследовать.

0 голосов
/ 01 марта 2012

Поскольку ваше приложение загружает DLL, они совместно используют одно и то же пространство памяти, и ваши функции в DLL могут получить доступ к любой памяти процесса приложения.Просто сделайте экземпляр глобально доступным (например, глобальная статическая переменная).В исходный код DLL включите заголовочный файл ClassAppGraph, затем вы можете использовать ClassAppGraph * непосредственно в DLL.

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