如何在构建为 DLL 的单个 SDI MFC 应用程序中获取指向 MFC 文档类的指针,export.cpp 设置对函数的标准调用?

问题描述 投票:0回答:1

我有一个VS2005动态链接库中的MFC程序,单SDI,应用程序名称c2view,文档类c2viewDoc,视图类c2viewView。这是一个 4 组件模型,单文档界面。

动态链接库内部是在export h和export.cpp中定义的函数,作为标准调用(a,b)我确实可以访问主窗口指针;

但是,我需要文档类Cc2viewDoc的指针,这样我就可以使用调用参数a和b来更新文档类中的成员变量!!
Jeff Prosise 的第 503 页暗示 m_pDocument 是 Cc2viewView 类的成员变量,因此,我想,如果您能给我指向 Cc2viewView 类 cvwcp* 的指针,我可以尝试继续使用 cvwcp->m_pDocument。

经过几周的努力,我确实让 MFC c2view.dll 从 C# 调用并进行绘图。现在下一步是将调用的参数传递到Shograph int a 和int b 的参数列表中,以更新Cc2viewDoc 中的成员。

请帮助我。

我尝试从 C Win App 或 c2viewApp 获取指向 C Document 类的指针,如 A f x get A p p ( )

没有任何效果。 我在export.cpp中

  • 国际标准看涨期权图 (a, b)
    并需要指向 doc 类的指针,以便我可以根据 a 和 b 更新其成员
pointers dll mfc export
1个回答
0
投票

出于多种原因,您不应该将 DLL 的内部结构暴露给外界。

主要 - 没有人应该关心您的 DLL 是否实现 MFC 文档/视图体系结构。同样重要的是 - 它根本不安全,因为可能存在版本冲突、对象生命周期管理等。

我认为,最佳实践是为您所需的功能创建一个简单的“extern C”API,并从您拥有的任何客户端调用它。

© www.soinside.com 2019 - 2024. All rights reserved.