把类封入DLL,遇到一个大问题和另一个大问题!

wugamp 2012-12-20 06:07:47
环境:VC6.
自己基于RichEditCtrl写了一个类,为了移植方便,放到DLL里,结果出了两个问题。
问题一:
方法里不能带参数,否则就在LOAD DLL 时候无法定位程序输入点。

问题二:
我想在类里设定字体,结果可以设定大小、黑体等,就是不能设定颜色。编译、执行的时候都没错,就是没有效果,怎么设置都是黑的。而且我已经把AUTOCOLOR给关闭了。同样的代码,如果放到类里执行,就没效果。放到类外面就有效果!可见代码本身是好的,只是由于移动到了DLL里面,才导致失效。何故?

恳请高人回答,分数奉送!
...全文
73 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
wugamp 2012-12-21
已经明白了:第一个问题是DLL没有及时更新,第二个问题是缺少this
回复
wugamp 2012-12-21
原来是DLL没有及时更新导致的。
回复
lijianli9 2012-12-21
这个是导出类的意思。 use the macro AFX_EXT_CLASS to export classes; the executables that link to the extension DLL use the macro to import classes
回复
wugamp 2012-12-20
引用 2 楼 oyljerry 的回复:
建立MFC 扩展DLL工程
请问:我类声明里有 AFX_EXT_CLASS,不是“MFC扩展”的意思吗?
回复
oyljerry 2012-12-20
建立MFC 扩展DLL工程
回复
wugamp 2012-12-20
第一个问题的代码如下:
class AFX_EXT_CLASS CWgEdit : public CRichEditCtrl
{
// Construction
public:
CWgEdit();
// Attributes
public:
// Operations
public:
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CWgEdit)
//}}AFX_VIRTUAL
// Implementation
public:
void SetFontStyle(这里不能有参数);
virtual ~CWgEdit();
// Generated message map functions
protected:
//{{AFX_MSG(CWgEdit)
// NOTE - the ClassWizard will add and remove member functions here.
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
回复
发帖
进程/线程/DLL
创建于2007-09-28

1.5w+

社区成员

VC/MFC 进程/线程/DLL
申请成为版主
帖子事件
创建了帖子
2012-12-20 06:07
社区公告
暂无公告