| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2953 人关注过本帖
标题:请教 关于动态链接库的问题
取消只看楼主 加入收藏
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 27楼 hellovfp
问题是MessageBox是一个小型窗口 它在具体实现时 也就是在DLL工程中的cpp实现 应该是写一个窗口然后在窗口上写标题 文本 和 建立按键 那实现这个小型窗口时又需要调用WINDOWS.H 。这样。。。。咋办啊

先问个问题  这个句子: CSize operator-() const;  MFC AFXWIN.H内的一段代码是操作符重载吗 怎么解释啊
程序代码:
class CSize : public tagSIZE
{
public:

// Constructors
    // construct an uninitialized size
    CSize();
    // create from two integers
    CSize(int initCX, int initCY);
    // create from another size
    CSize(SIZE initSize);
    // create from a point
    CSize(POINT initPt);
    // create from a DWORD: cx = LOWORD(dw) cy = HIWORD(dw)
    CSize(DWORD dwSize);

// Operations
    BOOL operator==(SIZE size) const;
    BOOL operator!=(SIZE size) const;
    void operator+=(SIZE size);
    void operator-=(SIZE size);

// Operators returning CSize values
    CSize operator+(SIZE size) const;
    CSize operator-(SIZE size) const;
    CSize operator-() const;               // 就在这里

// Operators returning CPoint values
    CPoint operator+(POINT point) const;
    CPoint operator-(POINT point) const;

// Operators returning CRect values
    CRect operator+(const RECT* lpRect) const;
    CRect operator-(const RECT* lpRect) const;
};


 

[ 本帖最后由 有容就大 于 2012-5-19 11:11 编辑 ]

梅尚程荀
马谭杨奚







                                                       
2012-05-19 11:09
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
 CSize operator-(SIZE size) const;

 CSize operator-() const;               // 就在这里

为什么一个有参数一个没有参数?

梅尚程荀
马谭杨奚







                                                       
2012-05-19 11:43
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 31楼 hellovfp
这又牵扯到函数重载 那名字相同系统就只能根据参数来判断用那个函数了吧?

梅尚程荀
马谭杨奚







                                                       
2012-05-19 11:59
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
程序代码:
// class CObject is the root of all compliant objects

#ifdef _AFXDLL
class CObject
#else
class AFX_NOVTABLE CObject
#endif
{
public:

// Object model (types, destruction, allocation)
    virtual CRuntimeClass* GetRuntimeClass() const;
    virtual ~CObject();  // virtual destructors are necessary

    // Diagnostic allocations
    void* PASCAL operator new(size_t nSize);
    void* PASCAL operator new(size_t, void* p);
    void PASCAL operator delete(void* p);
#if _MSC_VER >= 1200
    void PASCAL operator delete(void* p, void* pPlace);
#endif

#if defined(_DEBUG) && !defined(_AFX_NO_DEBUG_CRT)
    // for file name/line number tracking using DEBUG_NEW
    void* PASCAL operator new(size_t nSize, LPCSTR lpszFileName, int nLine);
#if _MSC_VER >= 1200
    void PASCAL operator delete(void *p, LPCSTR lpszFileName, int nLine);
#endif
#endif

    // Disable the copy constructor and assignment by default so you will get
    //   compiler errors instead of unexpected behaviour if you pass objects
    //   by value or assign objects.
protected:
    CObject();
private:
    CObject(const CObject& objectSrc);              // no implementation
    void operator=(const CObject& objectSrc);       // no implementation

// Attributes
public:
    BOOL IsSerializable() const;
    BOOL IsKindOf(const CRuntimeClass* pClass) const;

// Overridables
    virtual void Serialize(CArchive& ar);

#if defined(_DEBUG) || defined(_AFXDLL)
    // Diagnostic Support
    virtual void AssertValid() const;
    virtual void Dump(CDumpContext& dc) const;
#endif

// Implementation
public:
    static const AFX_DATA CRuntimeClass classCObject;
#ifdef _AFXDLL
    static CRuntimeClass* PASCAL _GetBaseClass();
#endif
};
AFX.H里的CObject类的代码
为什么析构函数设置成虚函数 构造函数设置为保护模式?

梅尚程荀
马谭杨奚







                                                       
2012-05-19 12:07
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 35楼 hellovfp
我建立了一个MFC运行的单文档窗口 我就想知道那些家伙是怎么把类封装起来不让俺看见的
看了后才知道哦 一个类继承于另一个类在继承于另一个类在继承于另一个类在继承于另一个类 ……
看了为写一个单文档窗口MFC用心良苦啊。

梅尚程荀
马谭杨奚







                                                       
2012-05-19 12:24
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 37楼 hellovfp
Thank you very much !

好好研究下。

梅尚程荀
马谭杨奚







                                                       
2012-05-19 12:32
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 39楼 hellovfp
哈哈 刚开始接触 很多不知道呢 希望C++ 能带来好运 给我。谢谢你的忠告。

梅尚程荀
马谭杨奚







                                                       
2012-05-19 13:02
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
程序代码:
   BOOL ShowWindow(int nCmdShow) const
    {
        return ::ShowWindow(m_hwnd, nCmdShow);
    }

    BOOL UpdateWindow(void) const
    {
        return ::UpdateWindow(m_hwnd);
    }

::ShowWindow(m_hwnd, nCmdShow);
是调用SDK库的ShowWindow, 如果是 ::怎么解?有没有扩展的写法?

梅尚程荀
马谭杨奚







                                                       
2012-05-19 13:07
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 44楼 hellovfp
匈牙利命名是脑残式的命名方式

这该怎么讲?

梅尚程荀
马谭杨奚







                                                       
2012-05-19 13:47
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 47楼 TonyDeng
书浏览过了 不过看完就感觉没有实实在在的体会 所以到处去找代码看 看他们是如何组织书上的东西的。
老大 头文件 我还是用过一些 不过要我说出他的本质 我现在还归纳不下来 大致的应该是做为一个与其他 模块的接口吧
.h里声明函数和变量 在.cpp里实现后 就完成了一个模块的创建 当另外一个模块需要调用这个模块里的函数功能就只要包含他的头文件即可 当然前提是这两个模块应该在一个工程里 如果像#include <stdio.h>就牵扯到库 现在就是想弄明白下库 和动态 静态 库的一些东西 。

不知我上面说的对不对 ?

梅尚程荀
马谭杨奚







                                                       
2012-05-20 10:39
快速回复:请教 关于动态链接库的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019742 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved