How to create C++ dll using MFC classes With CView Inherited class Ondraw method with IMPLEMENT DYNCREATE to be called from c# and or c++

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

我经常创建 C++ dll,将数学函数导出到 c sharp 或 c++。

但是现在我必须有一个 C++ dll,它可以将函数导出到 c sharp 或 c++,例如 mygraph(double xpointsin[],double ypointsin[],string xaxistitle, string yaxistitle, int numpointsin, double xpointsout[],double ypointsout[ ], 整数点输出); 在一个名为 graphv.cpp 的类中使用 OnDraw 方法进行绘图的 c++ 可执行文件中已经存在代码,该类继承自 CView 并作为 DECLARE_DYNCREATE(graphv) 和 IMPLEMENT_DYNCREATE(graphv,CView) 进行管理。绘图是使用 OnDraw 方法 (CDC *pDC) 和 ASSERT pDOC->GetDoc();

如何重新组织 C++ .exe 中的代码并重建为 C++ dll?你能给我一个简单的例子吗,比如用 *pDC 指针做一个简单的 LineTO 的代码?

我看过但无法使用 CView 的内容是 dll 中 CDialog 继承类的类似问题。在那里我可以创建 CDialog 类的对象,例如 mycdlog。然后我可以装饰这个对象并调用对象上的 DoModal 方法,这会在屏幕上弹出一个可视对话框。然而,CView 继承的类似乎工作方式不同,需要 DYNCREATE 和消息来强制更新以调用 OnDraw。

只有当 c++ dll 从调用程序接管控制权时,视图才会出现。在 dll 中,用户将添加和移动现有点,然后按退出键关闭视图并将控制权返回给调用程序。

你能告诉我一个可以在一对点之间执行 LineTo 的简单 dll 吗?

如上所述,我有一个导出 CDialog 继承函数的现有 C++ dll。在 export.h 中,我有一个 __standard dllexport 语句,例如 int dlogout(file path... 等)。在 export.cpp 中,我实例化了 CDialog 继承类 Crudedlg 的对象:CDIalog 通过声明 Crudedlg myobject;然后我可以对 myobject 应用 DoModal 方法。

但是 graphv 类 graphv :CVIew 似乎由 DYNCREATE 控制,所以我不能直接实例化一个 graphv 对象,例如 mygraphobj 更新成员,然后强制 .mygraphobj.OnDraw OnDraw 方法也需要一个 CDC 指针 *pDC ,我怎么会得到它指针?

c++ dll export sharp cview
© www.soinside.com 2019 - 2024. All rights reserved.