M8下的WTL(Windows Template Library)開發

來源:互聯網
上載者:User

-1、參考文章:

1、Windows Mobile和Wince(Windows Embedded CE)下的WTL(Windows Template Library)開發http://www.cnblogs.com/procoder/archive/2009/06/03/1495002.html

2、WTL8.1 CE部分在VS2008下安裝
http://hi.baidu.com/l1_jun/blog/item/2fd61f0009d37608738da5c1.html

0、前言

M8作為一個WinCE系統,要使用WTL,按照上面的兩篇文章的說明進行配置就可以了,但為了備忘,我還是稍微記錄下。
其實在M8上用WTL來開發的並沒有太大的必要,因為M8有自己的介面SDK,同時還有.net支援,我之所以想做這樣的嘗試完全是出於興趣和學習的目的:)
就是想把自己最經常用的WTL在M8上跑一跑

1、我的機器環境:Win7 vs2008

2、下載安裝:

WTL project的地址: http://sourceforge.net/projects/wtl/

WTL8.1 : http://sourceforge.net/project/showfiles.php?group_id=109071

下載完以後解壓,例如我解壓到D:/WTL81下面。

3.開啟AppWizCE
目錄下的Files/HTML/1033/AppType.htm, default.htm, Platforms.htm,
UIFeatures.htm, 找到classid="CLSID:D245F352-3F45-4516-B1E6-04608DA126CC",修改成 classid="CLSID:5AFCAD52-F3CC-43BB-A605-6602EE5BD94A"

4.開啟AppWizCE
目錄下的Files/Scripts/1033/default.js,找到new ActiveXObject("ProjWiz.SDProjWiz2.2");改成new ActiveXObject("ProjWiz.SDProjWiz2.3");

5.開啟AppWizCE
目錄下的Files/Templates/1033/stdafx.h,找到#include <atlapp.h>,在這句話之前加上
#if _ATL_VER == 0x900
#define _SECURE_ATL 1
#endif

6.下面就可以開始安裝
了,運行AppWizCE目錄下的setup90.js,注意由於是.js檔案因此很多人可能雙擊運行後就會使用相應的軟體來開啟 了,比如記事本或者各種網頁編輯器等,這種情況下我們可以在命令列使用wscript setup90.js命令來運行,如果還是不行,那麼請修改註冊表,開啟HKEY_CLASSES_ROOT/.js 將預設值改成JSFile,這樣雙擊.js就可以運行安裝程式了,安裝完畢會出現對話方塊提示安裝成功.

7.配置VS的工程目錄

8.好了,可以建立工程了

9。竟然還有編譯錯誤,這麼修改:

1>D:/WTL81/include/atlapp.h(154) : error C2084: 函數“HRESULT ATL::CComModule::RegisterClassObjects(DWORD,DWORD) throw()”已有主體
1>        D:/Program Files/Microsoft Visual Studio 9.0/VC/ce/atlmfc/include/atlbase.h(4471) : 參見“RegisterClassObjects”的前一個定義
1>D:/WTL81/include/atlapp.h(156) : error C2084: 函數“HRESULT ATL::CComModule::RevokeClassObjects(void) throw()”已有主體
1>        D:/Program Files/Microsoft Visual Studio 9.0/VC/ce/atlmfc/include/atlbase.h(4472) : 參見“RevokeClassObjects”的前一個定義

在atlapp.h中找到下面的代碼,並用預定義宏包含起來

#ifndef _WIN32_WCE // Fix by linyehui 2010/5/5 11:15:13

namespace ATL
{
  inline HRESULT CComModule::RegisterClassObjects(DWORD /*dwClsContext*/, DWORD /*dwFlags*/) throw()
  { return E_NOTIMPL; }
  inline HRESULT CComModule::RevokeClassObjects() throw()
  { return E_NOTIMPL; }
}; // namespace ATL
#endif

10.好了,可以了:)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.