请问如何建立并调用 一个MFC扩展dll? 想建一 个扩展dll,请问具体步骤是什么?然后该怎么调用?新手一个,希望说的详细点,最好能有个实例。在网上也搜了一点资料,但要么是没例子看不懂,要么是照着做总是调用不成功。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 给你一个好的例子。你照着做,就会了。http://www.codeproject.com/dll/RegDLL.asp 谢谢了,但这篇文章好像没有介绍扩展dll.请大家继续不吝赐教呀!最好有个实例! #if !defined(AFX_NAMEDLG_H__3ECDD681_6090_11D2_955D_A2A11A78AD56__INCLUDED_)#define AFX_NAMEDLG_H__3ECDD681_6090_11D2_955D_A2A11A78AD56__INCLUDED_#if _MSC_VER > 1000#pragma once#endif // _MSC_VER > 1000// NameDlg.h : header file///////////////////////////////////////////////////////////////////////////////// CNameDlg dialog#ifndef _AFXEXT#define IDD_EXT_NAME 1000#else#include "resource.h"#endifclass AFX_EXT_CLASS CNameDlg : public CDialog{// Constructionpublic: CNameDlg(CWnd* pParent = NULL); // standard constructor// Dialog Data //{{AFX_DATA(CNameDlg) enum { IDD = IDD_EXT_NAME }; CString m_strName; //}}AFX_DATA// Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CNameDlg) protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support //}}AFX_VIRTUAL// Implementationprotected: // Generated message map functions //{{AFX_MSG(CNameDlg) // NOTE: the ClassWizard will add member functions here //}}AFX_MSG DECLARE_MESSAGE_MAP()};//{{AFX_INSERT_LOCATION}}// Microsoft Visual C++ will insert additional declarations immediately before the previous line.#endif // !defined(AFX_NAMEDLG_H__3ECDD681_6090_11D2_955D_A2A11A78AD56__INCLUDED_) // NameDlg.cpp : implementation file//#include "stdafx.h"#include "stdafx.h"#include "NameDlg.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endif/////////////////////////////////////////////////////////////////////////////// CNameDlg dialogCNameDlg::CNameDlg(CWnd* pParent /*=NULL*/) : CDialog(CNameDlg::IDD, pParent){ //{{AFX_DATA_INIT(CNameDlg) m_strName = _T(""); //}}AFX_DATA_INIT}void CNameDlg::DoDataExchange(CDataExchange* pDX){ CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CNameDlg) DDX_Text(pDX, IDC_NAME, m_strName); //}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(CNameDlg, CDialog) //{{AFX_MSG_MAP(CNameDlg) // NOTE: the ClassWizard will add message map macros here //}}AFX_MSG_MAPEND_MESSAGE_MAP()/////////////////////////////////////////////////////////////////////////////// CNameDlg message handlers #ifndef _AFXEXT#define IDD_EXT_NAME 1000#else#include "resource.h"#endif就是这几句不同?IDD_EXT_NAME 是指什么?为什么要include "resource.h" 而不是别的文件?还是不懂不会用呀。 其实我是想做这样的工作:我建了个MDI工程 ,里面有个DIB类(自己写的,用于图像处理)。现在我想把这个DIB类封装起来(不让别人看到源代码),不知是不是应该给这个类做成dll,如果是又该用什么类型的dll简单?现在我是既不知该如何建,也不知该如何调用dll. DIB类 如果不是派生于MFC的类 就不要使用扩展MFC dll 你只要按照告诉你的那个网址 学习一下怎么做个 常规mfc dll。如果你的类里面都没用用到mfc的类 ,就做个常规dll 用VC6++的向导可创建一个扩展DLL模板,然后再自己实现功能函数。 vc头文件 msflexgrid 动态创建失败 如何改变CListBox中的字体和字体大小 从一条正弦曲线(y = A *sin(w*t))上得到一些点,现在想检测是否有误差,想推出振幅A来,应该怎么做啊? 初来乍到!先奉献100分给各位!希望以后多多关照! 一个程序写文件的同时另一程序读文件 如何在CRicEditCtrl中插入一个自己创建的对象(……) 花分! 请问在msdn的什么地方可以查到windows消息参数的含义 求助 求一个基于MFC上导入3d模型进行交互的实例 关于多纯种处理收发的问题. SelectObject问题一问
http://www.codeproject.com/dll/RegDLL.asp
请大家继续不吝赐教呀!最好有个实例!
#define AFX_NAMEDLG_H__3ECDD681_6090_11D2_955D_A2A11A78AD56__INCLUDED_#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// NameDlg.h : header file
///////////////////////////////////////////////////////////////////////////////
// CNameDlg dialog#ifndef _AFXEXT
#define IDD_EXT_NAME 1000
#else
#include "resource.h"
#endifclass AFX_EXT_CLASS CNameDlg : public CDialog
{
// Construction
public:
CNameDlg(CWnd* pParent = NULL); // standard constructor// Dialog Data
//{{AFX_DATA(CNameDlg)
enum { IDD = IDD_EXT_NAME };
CString m_strName;
//}}AFX_DATA
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CNameDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL// Implementation
protected: // Generated message map functions
//{{AFX_MSG(CNameDlg)
// NOTE: the ClassWizard will add member functions here
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.#endif // !defined(AFX_NAMEDLG_H__3ECDD681_6090_11D2_955D_A2A11A78AD56__INCLUDED_)
//#include "stdafx.h"
#include "stdafx.h"
#include "NameDlg.h"#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif/////////////////////////////////////////////////////////////////////////////
// CNameDlg dialog
CNameDlg::CNameDlg(CWnd* pParent /*=NULL*/)
: CDialog(CNameDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CNameDlg)
m_strName = _T("");
//}}AFX_DATA_INIT
}
void CNameDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CNameDlg)
DDX_Text(pDX, IDC_NAME, m_strName);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CNameDlg, CDialog)
//{{AFX_MSG_MAP(CNameDlg)
// NOTE: the ClassWizard will add message map macros here
//}}AFX_MSG_MAP
END_MESSAGE_MAP()/////////////////////////////////////////////////////////////////////////////
// CNameDlg message handlers
#define IDD_EXT_NAME 1000
#else
#include "resource.h"
#endif
就是这几句不同?IDD_EXT_NAME 是指什么?为什么要include "resource.h" 而不是别的文件?还是不懂不会用呀。
我建了个MDI工程 ,里面有个DIB类(自己写的,用于图像处理)。现在我想把这个DIB类封装起来(不让别人看到源代码),不知是不是应该给这个类做成dll,如果是又该用什么类型的dll简单?现在我是既不知该如何建,也不知该如何调用dll.
你只要按照告诉你的那个网址 学习一下怎么做个 常规mfc dll。如果你的类里面都没用用到mfc的类 ,就做个常规dll