想建一 个扩展dll,请问具体步骤是什么?然后该怎么调用?
新手一个,希望说的详细点,最好能有个实例。
在网上也搜了一点资料,但要么是没例子看不懂,要么是照着做总是调用不成功。

解决方案 »

  1.   

    给你一个好的例子。你照着做,就会了。
    http://www.codeproject.com/dll/RegDLL.asp
      

  2.   

    谢谢了,但这篇文章好像没有介绍扩展dll.
    请大家继续不吝赐教呀!最好有个实例!
      

  3.   

    #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
    {
    // 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_)
      

  4.   

    // NameDlg.cpp : implementation file
    //#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
      

  5.   

    #ifndef _AFXEXT
    #define IDD_EXT_NAME 1000
    #else
    #include "resource.h"
    #endif
    就是这几句不同?IDD_EXT_NAME 是指什么?为什么要include "resource.h" 而不是别的文件?还是不懂不会用呀。
      

  6.   

    其实我是想做这样的工作:
    我建了个MDI工程 ,里面有个DIB类(自己写的,用于图像处理)。现在我想把这个DIB类封装起来(不让别人看到源代码),不知是不是应该给这个类做成dll,如果是又该用什么类型的dll简单?现在我是既不知该如何建,也不知该如何调用dll.
      

  7.   

    DIB类 如果不是派生于MFC的类 就不要使用扩展MFC dll 
    你只要按照告诉你的那个网址 学习一下怎么做个 常规mfc dll。如果你的类里面都没用用到mfc的类 ,就做个常规dll
      

  8.   

    用VC6++的向导可创建一个扩展DLL模板,然后再自己实现功能函数。