我之前曾经问过类似的问题,但我仍然不清楚。
我的应用程序有一个类,比如ClassAppGraph
来表示某种图形。我需要编写一个解析ClassAppGraph
对象并执行某些操作的DLL。
我的DLL如何从Application中访问ClassAppGraph
的对象?
我知道我可以从应用程序向DLL发送一个指向此对象的指针,但是DLL如何知道该类的外观,它的数据成员和函数是什么?我在我的DLL项目中包含.h文件,其中包含应用程序类的声明吗?
我是否可以为这种情况做任何其他设计?
答案 0 :(得分:0)
由于您的应用程序加载了DLL,它们共享相同的内存空间,DLL中的函数可以访问任何应用程序进程内存。只需使实例可全局访问(例如全局静态变量)。在DLL源代码中,包含ClassAppGraph
的头文件,然后您可以直接在DLL中使用ClassAppGraph *
。
答案 1 :(得分:0)
我会将ClassAppGraph
类和实现放在DLL中,然后在应用程序中使用DLL中的实现。我很可能实际为DLL创建ClassBaseGraph
,如果应用程序需要自定义类,它可以继承它。