<menu id="w8yyk"><menu id="w8yyk"></menu></menu>
  • <dd id="w8yyk"><nav id="w8yyk"></nav></dd>
    <menu id="w8yyk"></menu>
    <menu id="w8yyk"><code id="w8yyk"></code></menu>
    <menu id="w8yyk"></menu>
    <xmp id="w8yyk">
    <xmp id="w8yyk"><nav id="w8yyk"></nav>
  • 網站首頁 > 物聯資訊 > 技術分享

    在WIN32 DLL中使用MFC

    2016-09-28 00:00:00 廣州睿豐德信息科技有限公司 閱讀
    睿豐德科技 專注RFID識別技術和條碼識別技術與管理軟件的集成項目。質量追溯系統、MES系統、金蝶與條碼系統對接、用友與條碼系統對接

    最近用WIN32 DLL,為了方便要用到MFC的一些庫,又不想轉工程,就網上找了很多方法,發現沒有詳細的介紹,有的也行不通,現在成功在WIN32 DLL中使用了MFC,記錄一下以防以后用到忘記

    一、修改預編譯頭文件(stdafx.h)

    在stdafx.h文件中添加下面代碼,包含一些MFC的頭文件,這些可以在一個MFC工程中復制過來

    復制代碼
     1 #define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS    // 某些 CString 構造函數將為顯式的
    2
    3 #include <afxwin.h> // MFC 核心組件和標準組件
    4 #include <afxext.h> // MFC 擴展
    5
    6 #ifndef _AFX_NO_OLE_SUPPORT
    7 #include <afxole.h> // MFC OLE 類
    8 #include <afxodlgs.h> // MFC OLE 對話框類
    9 #include <afxdisp.h> // MFC 自動化類
    10 #endif // _AFX_NO_OLE_SUPPORT
    11
    12 #ifndef _AFX_NO_DB_SUPPORT
    13 #include <afxdb.h> // MFC ODBC 數據庫類
    14 #endif // _AFX_NO_DB_SUPPORT
    15
    16 #ifndef _AFX_NO_DAO_SUPPORT
    17 #include <afxdao.h> // MFC DAO 數據庫類
    18 #endif // _AFX_NO_DAO_SUPPORT
    19
    20 #include <afxdtctl.h> // MFC 對 Internet Explorer 4 公共控件的支持
    21 #ifndef _AFX_NO_AFXCMN_SUPPORT
    22 #include <afxcmn.h> // MFC 對 Windows 公共控件的支持
    23 #endif // _AFX_NO_AFXCMN_SUPPORT
    復制代碼


    二、修改編譯配置

    我使有的是VS2003

    1、項目->屬性->常規->MFC的使用->在靜態庫中使用MFC(動態或靜態都可以)

    2、鏈接器->輸入->

        因為編譯的時候會因為鏈接的順序問題導致鏈接錯誤,所以這里要改兩個LIB的鏈接順序

        先在‘忽略指定庫中’忽略掉這兩個DLL,分別是uafxcw.lib和libcpmt.lib,如果是DEBUG工程,還需要填入libcmt.lib

        再在'附加依賴項'中以uafxcw.lib libcpmt.lib的順序填入

    三、在你的主文件中加入代碼

    在最前面加入

    復制代碼
    #ifdef _DEBUG
    #undef THIS_FILE
    static char THIS_FILE[] = __FILE__;
    #endif

    #define new DEBUG_NEW

    /////////////////////////////////////////////////////////////////////////////
    // global data

    // The following symbol used to force inclusion of this module for _USRDLL
    #ifdef _X86_
    extern "C" { int _afxForceUSRDLL; }
    #else
    extern "C" { int __afxForceUSRDLL; }
    #endif
    復制代碼

    這樣不用從CWinApp中派生一個類再外部定義來使用MFC的入口點,可以直接使用原來的寫好的DllMain入口點

    謝謝觀看!

    RFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成
    最近免费观看高清韩国日本大全