青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

concentrate on c/c++ related technology

plan,refactor,daily-build, self-discipline,

  C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
  37 Posts :: 1 Stories :: 12 Comments :: 0 Trackbacks

常用鏈接

留言簿(9)

我參與的團隊

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

在vc6里面一般都沒有這個頭文件的,在后面的版本(.NET)都有相關的說明,不過這個是CString包含的頭文件,我之前將open source的代碼移植到win32 application平臺下面,對方的編譯器是vc2003,而我的是用到了vc6,所以就遇到這個問題了,解決辦法有兩種:
1)在工程里面加入MFCsupport,因為CString是MFC里面的內容。具體做法是project/settings/General/microsoft foundation class處選擇using MFC as a shared dll./ static library.
在msdn上面有具體的說明。
可能看起來比較麻煩,不過不好意思,就這樣弄過來防止msdn上面這個文章過舊了,又被刪除了。

給 ATL EXE 項目添加 MFC 支持



1. 在包括 Atlbase.h 之前,將以下 #include 指令添加到 StdAfx.h:
      #include <afxwin.h>   // MFC core and standard components
            #include <afxext.h>   // MFC extensions
            #include <afxdisp.h>  // MFC Automation extensions
2. 更改項目設置以使用 MFC。 在 Project Settings 對話框中,單擊 General 選項卡,然后將 Microsoft Foundation Classes 列表框中的設置更改為 MFC。
3. 添加 CWinApp 衍生類,并聲明一個該類型的全局變量,如下所示:
class CMyApp : public CWinApp
            {
            public:
            virtual BOOL InitInstance();
            virtual int ExitInstance();
            protected:
            BOOL m_bRun;
            };
4. 用以下 InitInstance 和 ExitInstance 代碼替換 _tWinMain 函數:
BOOL CMyApp::InitInstance()
            {
            // Initialize OLE libraries.
            if (!AfxOleInit())
            {
            AfxMessageBox(_T("OLE Initialization Failed!"));
            return FALSE;
            }
            // Initialize CcomModule.
            _Module.Init(ObjectMap, m_hInstance);
            _Module.dwThreadID = GetCurrentThreadId();
            // Check command line arguments.
            TCHAR szTokens[] = _T("-/");
            m_bRun = TRUE;
            LPCTSTR lpszToken = FindOneOf(m_lpCmdLine, szTokens);
            while (lpszToken != NULL)
            {
            // Register ATL and MFC class factories.
            if (lstrcmpi(lpszToken, _T("Embedding"))==0 ||
            lstrcmpi(lpszToken, _T("Automation"))==0)
            {
            AfxOleSetUserCtrl(FALSE);
            break;
            }
            // Unregister servers.
            // There is no unregistration code for MFC
            // servers. Refer to <LINK TYPE="ARTICLE" VALUE="Q186212">Q186212</LINK> "HOWTO: Unregister MFC
            // Automation Servers" for adding unregistration
            // code.
            else if (lstrcmpi(lpszToken, _T("UnregServer"))==0)
            {
            VERIFY(SUCCEEDED(_Module.UpdateRegistryFromResource(IDR_ServerS2B, FALSE)));
            VERIFY(SUCCEEDED(_Module.UnregisterServer(TRUE)));
            m_bRun = FALSE;
            break;
            }
            // Register ATL and MFC objects in the registry.
            else if (lstrcmpi(lpszToken, _T("RegServer"))==0)
            {
            VERIFY(SUCCEEDED(_Module.UpdateRegistryFromResource(IDR_ServerS2B, TRUE)));
            VERIFY(SUCCEEDED(_Module.RegisterServer(TRUE)));
            COleObjectFactory::UpdateRegistryAll();
            m_bRun = FALSE;
            break;
            }
            lpszToken = FindOneOf(lpszToken, szTokens);
            }
            if (m_bRun)
            {
            // Comment out the next line if not using VC 6-generated
            // code.
            _Module.StartMonitor();
            VERIFY(SUCCEEDED(_Module.RegisterClassObjects(CLSCTX_LOCAL_SERVER, REGCLS_MULTIPLEUSE)));
            VERIFY(COleObjectFactory::RegisterAll());
            // To run the EXE standalone, you need to create a window
            // and assign the CWnd* to m_pMainWnd.
            LPCTSTR szClass = AfxRegisterWndClass(NULL);
            m_pMainWnd = new CWnd;
            m_pMainWnd->CreateEx(0, szClass, _T("SomeName"), 0, CRect(0, 0, 0, 0), NULL, 1234);
            }
            return TRUE;
            }
            int CMyApp::ExitInstance()
            {
            // MFC's class factories registration is
            // automatically revoked by MFC itself.
            if (m_bRun)
            {
            _Module.RevokeClassObjects();
            Sleep(dwPause); //wait for any threads to finish
            }
            _Module.Term();
            return 0;
            }
5. 對于 Unicode 版本,請確保進入點被設置為 wWinMainCRTStartup,該設置在 Project Settings 對話框中 Link 字段的 Output 類別中。 有關其它信息,請參見 Microsoft Knowledge Base 中的下列文章:
125750 (http://support.microsoft.com/kb/125750/EN-US/) PRB: 錯誤 LNK2001: “_WinMain@16”: 不能解析的外部符號
6. 將以下代碼行添加到 COM 接口、窗口過程和導出函數的每個成員函數的開頭:
AFX_MANAGE_STATE(AfxGetAppModuleState());
有關 AFX_MANAGE_STATE 的詳細信息,請查詢 VC++ 聯機文檔。
有關將 MFC 支持添加到 ATL COM AppWizard 項目的詳細信息,請參見下面的 Microsoft Knowledge Base 文章:

181505 (http://support.microsoft.com/kb/181505/EN-US/) PRB: ATL COM AppWizard 不提供對 .EXE 的 MFC 支持

回到頂端

將 MFC 支持添加到 ATL DLL 項目



執行上面的步驟 1 到步驟 3。

1. 將 AppWizard 生成的 DllMain 的 DLL_PROCESS_ATTACH 和 DLL_PROCESS_DETACH 中的代碼移到 CMyApp 的 InitInstance 和 ExitInstance,并刪除 DllMain,如下所示:
      BOOL CMyApp::InitInstance()
            {
            _Module.Init(ObjectMap, m_hInstance);
            return CWinApp::InitInstance();
            }
            int CMyApp::ExitInstance()
            {
            // MFC's class factories registration is
            // automatically revoked by MFC itself.
            if (m_bRun)
            _Module.RevokeClassObjects();
            
2. 將以下代碼行添加到 COM 接口、窗口過程和導出函數的每個成員函數的開頭:
AFX_MANAGE_STATE(AfxGetStaticModuleState());
有關其它信息,請參見 Microsoft Knowledge Base 中的下列文章:
140850 (http://support.microsoft.com/kb/140850/EN-US/) HOWTO: 轉換 DLLTRACE 以使用共享庫中的 MFC

另外一種辦法就是將atlstr廢掉,采用其他辦法
因為atlstr實際起作用的是CString,而如果能夠找到CString的替代方案,就可以了。
替代方案在這里:
http://www.codeguru.com/forum/showthread.php?t=402543
一般建議用std::string來完成這些不依賴微軟某種技術的做法。
在我的項目里面,因為采用的是win32 application工程,并且該項目已經很大了,不想因為這個而在那里增加一些方案1的處理,我采用了方案2。
posted on 2008-04-29 10:14 jolley 閱讀(8299) 評論(0)  編輯 收藏 引用

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲国内高清视频| 欧美黄在线观看| 久久久久免费视频| 亚洲欧美日韩一区| 亚洲在线成人| 性色av一区二区三区在线观看| 午夜亚洲福利在线老司机| 欧美在线国产| 麻豆精品精华液| 亚洲激情视频网| 亚洲国产精品ⅴa在线观看 | 国产日韩精品久久| 国产一区日韩一区| 亚洲精选一区| 欧美一区午夜精品| 免费观看成人网| 99视频+国产日韩欧美| 亚洲一区在线免费| 久久久亚洲影院你懂的| 欧美美女操人视频| 国产亚洲毛片在线| 一本色道久久综合亚洲精品高清| 欧美在线视频播放| 欧美激情麻豆| 欧美一级电影久久| 欧美激情日韩| 国内外成人免费视频 | 国产日韩一区二区三区| 欧美在线观看一区二区| 免费在线欧美黄色| 久久人人爽人人爽爽久久| 欧美伦理91| 在线观看欧美视频| 亚洲一区二区三区国产| 欧美99在线视频观看| 亚洲一级黄色av| 欧美日本高清视频| 亚洲国产婷婷综合在线精品| 久久丁香综合五月国产三级网站| 亚洲毛片视频| 欧美国产日韩a欧美在线观看| 国内一区二区在线视频观看| 亚洲欧美日韩网| 亚洲三级免费观看| 男女视频一区二区| 亚洲第一精品在线| 噜噜噜久久亚洲精品国产品小说| 亚洲在线观看视频| 欧美视频福利| 一区二区三区精品| 亚洲黑丝在线| 欧美+亚洲+精品+三区| 一区在线电影| 久久尤物视频| 久久国产精品99国产精| 国产亚洲欧美日韩一区二区| 欧美一区二区精品| 亚洲欧美一级二级三级| 国产日本欧美一区二区| 欧美在线观看视频一区二区三区 | 欧美日韩国产二区| 亚洲激情视频在线播放| 欧美成黄导航| 久久在精品线影院精品国产| 在线观看欧美日韩| 欧美黄色免费网站| 欧美国产日韩一二三区| 日韩视频在线一区| 亚洲精品欧美一区二区三区| 欧美日韩一区自拍| 亚洲一区影音先锋| 亚洲一区二区三区四区五区黄| 国产精品久久婷婷六月丁香| 午夜精品免费在线| 性视频1819p久久| 国产一区三区三区| 欧美成人午夜激情在线| 欧美成人综合| 亚洲影院在线观看| 欧美一区二区三区精品电影| 黄色成人免费网站| 亚洲黄色高清| 国产精品久久久久久久久动漫| 久久av在线| 美女网站久久| 亚洲一区二区综合| 久久精品2019中文字幕| 久久国产手机看片| 亚洲黄色成人| 亚洲线精品一区二区三区八戒| 国产欧亚日韩视频| 媚黑女一区二区| 欧美日韩国内| 久久天堂av综合合色| 欧美国产第一页| 欧美一区二区三区久久精品| 久久综合99re88久久爱| 亚洲一区二区三区在线看| 欧美一区二区视频在线| 亚洲精品久久久久久一区二区| 亚洲一区二区av电影| 亚洲二区在线观看| 在线亚洲国产精品网站| 亚洲第一福利在线观看| 亚洲一区免费视频| 亚洲国产va精品久久久不卡综合| 中日韩高清电影网| 亚洲国产精品ⅴa在线观看| 亚洲午夜久久久久久久久电影院 | 亚洲乱码视频| 在线成人欧美| 欧美一区二区成人6969| 在线一区二区视频| 巨乳诱惑日韩免费av| 欧美一区二区三区在线观看| 欧美日韩国产成人在线观看| 欧美国产成人精品| 国产一区二区丝袜高跟鞋图片| 亚洲精品中文字幕在线观看| 亚洲国产一区二区在线| 久久国产加勒比精品无码| 欧美亚洲自偷自偷| 欧美性猛片xxxx免费看久爱| 亚洲激情在线观看| 亚洲国产一区二区精品专区| 久久国产精品第一页| 久久久久久久久久久久久9999| 国产精品麻豆va在线播放| 亚洲九九精品| 99精品黄色片免费大全| 欧美11—12娇小xxxx| 欧美1区视频| 伊人狠狠色j香婷婷综合| 欧美在线视频网站| 久久久久99| 国产一区二区三区免费观看| 性做久久久久久久久| 久久久www免费人成黑人精品 | 亚洲美女中文字幕| 欧美不卡在线| 亚洲国产另类久久久精品极度| 亚洲激情二区| 欧美日本国产一区| 一区二区日本视频| 先锋影音网一区二区| 国产欧美精品日韩| 欧美一区二区三区在线视频| 久久午夜精品一区二区| 在线观看日韩国产| 亚洲风情在线资源站| 91久久久久久国产精品| 欧美高清视频在线播放| 亚洲精品久久久久久久久久久久久| 亚洲乱码国产乱码精品精可以看 | 在线不卡a资源高清| 免费观看欧美在线视频的网站| 亚洲国产精品电影在线观看| 中日韩美女免费视频网址在线观看 | 日韩视频一区二区三区在线播放免费观看| 久久综合给合久久狠狠色 | 亚洲欧洲偷拍精品| 亚洲午夜一区| 国产性天天综合网| 免费精品99久久国产综合精品| 亚洲精品你懂的| 宅男精品导航| 国外成人免费视频| 欧美成人四级电影| 亚洲天堂成人| 欧美粗暴jizz性欧美20| 亚洲视频1区2区| 狠久久av成人天堂| 欧美日韩高清在线播放| 性做久久久久久免费观看欧美| 欧美v国产在线一区二区三区| 一本色道精品久久一区二区三区| 国产欧美日韩综合精品二区| 欧美高清在线视频观看不卡| 亚洲欧美日韩在线不卡| 亚洲韩国日本中文字幕| 久久久国产亚洲精品| 这里只有精品丝袜| 一区二区在线免费观看| 欧美亚洲第一页| 久久久欧美精品| 亚洲一区二区三区777| 欧美国产在线观看| 久久精品亚洲| 亚洲一区在线视频| 亚洲精品久久嫩草网站秘色| 国产日韩欧美中文| 欧美体内谢she精2性欧美| 欧美.www| 久久人人爽人人爽| 午夜精品视频在线观看| 在线亚洲欧美专区二区| 亚洲精品韩国| 亚洲精品一品区二品区三品区| 欧美激情第五页| 裸体一区二区|