bcb中编译MFC类库

    本文地址:http://tongxinmao.com/Article/Detail/id/519

    1.编译条件:

    在Project options-->Directories/Conditionals-->Conditionals:Conditional dfines中添加_X86_;_WINDOWS;_MSC_VER=1100;_AFX_PORTABLE;_AFX_NOFORCE_LIBS;_MT;_CRT_PORTABLE;

    _AFX_NO_DEBUG_CRT


    2.包含路径:

    include path 加入 $(BCB)\include\MFC 

    Library path 加入  $(BCB)\Lib\PSDK


    3.Advanced Compiler 里将 MFC Compatibility 勾选起来


    4.CPP文件中包含相关的lib文件

    #ifdef _DEBUG

    # pragma link "nafxcwd.lib"

    #else

    # pragma link "nafxcw.lib"

    #endif


    5.CPP文件中包含头文件,在vcl.h之前

    #include <afxwin.h>

    #include <Afxdlgs.h>



    在编译的过程中,有两个常量定义冲突,可注释掉。

    //static const Word CN_COMMAND = 0xbd11;

    //static const Shortint ID_HELP = 0x9;

    如果还有其他冲突可在CPP开始处加入#define NO_WIN32_LEAN_AND_MEAN 


    在c++builder窗体上画线,调用MFC中的CClientDC类,在窗体上画图,代码如下:

    void __fastcall TForm1::FormPaint(TObject *Sender)

    {

         //HWND Handle转CWnd;

         CWnd *pCWnd1=CWnd::FromHandle(this->Handle);

         

         //CPaintDC dc(pCWnd1);//这个类要在WM_PAINT消息中调用

         CClientDC dc1(pCWnd1);

         dc1.DrawText("大家好",CRect(10,10,200,100),DT_LEFT);

         CBrush brush(RGB(120,21,90));

         CBrush *pOldBrush = dc1.SelectObject(&brush);

         RECT rect;

         rect.bottom =100;

         rect.left   = 200;

         rect.right  =400;

         rect.top    =10;

         dc1.Ellipse(&rect);

    }


    ————————————————

    版权声明:本文为CSDN博主「chinayu2007」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

    原文链接:https://blog.csdn.net/chinayu2007/article/details/39549309


    上一篇:__closure调用另一个类中的函数
    下一篇:键盘按键名称及HID扫描码及VK虚拟键码对照表