Time of Update: 2018-12-04
CryptAPI 取得 認證序號 的操作 cheungmine 通過Win32 CryptAPI尋找個人認證庫(MY)中的指定的認證的序號。顯示之。認證的序號經過處理,和IE中顯示的一樣(只是人為地去掉了空格)。 // 去除指定字元// 下面的代碼用於字串替換static char* trim(char *str, char chr){return (*str==0)?str:(((*str!=chr)?(((trim(str+1, chr)-1)==str)?str:(*(trim(str+1
Time of Update: 2018-12-04
Webgis 列印實現原理褫其華袞,示人本相系列之二2006-9-18cheungmine一、問題的提出 Webgis提供了用戶端免外掛程式的地圖瀏覽機制。任何位於WWW節點內的電腦都可以通過瀏覽器瀏覽地圖。但是,列印地圖成了Webgis遇到的一個問題。用戶端如果使用IE的預設列印功能來輸出地圖,僅僅輸出了當前顯示的圖象到印表機。無論從尺寸和解析度上都不能滿足高精度繪圖的需要。如果客戶要求輸出一定比例尺(如:1/500)的大幅面地圖(連續多幅),這就成了Webgis列印的技術壁壘。
Time of Update: 2018-12-04
雙緩衝繪圖和視窗控制項的繪製---ATL ActiveX 視窗控制項產生嚮導繪製代碼OnDraw的一個錯誤 cheungmine我們通常使用ATL COM組件,產生一個帶視窗的ActiveX控制項,然後希望在這個視窗中繪製我們的映像、圖形等資料,然而ATL嚮導產生的程式碼中包含很多錯誤,下面是其自動嚮導產生的程式碼: HRESULT OnDraw(ATL_DRAWINFO& di) { RECT& rc = *(RECT*)di.prcBounds;
Time of Update: 2018-12-04
這個系列主要希望弄明白boost::bind的實現原理,回到研究之四的簡單使用的例子。稍微加點代碼,也綁定Foo函數。#include <iostream>#include <vector>#include <algorithm>#include <boost/bind.hpp>using namespace std;bool Foo(int x) { return x >= 2;}typedef bool (*FooPointer)(
Time of Update: 2018-12-04
reference_wrapper模板:(ref.hpp檔案中)template<class T> class reference_wrapper{ public: typedef T type;#if defined( BOOST_MSVC ) && BOOST_WORKAROUND( BOOST_MSVC, < 1300 ) explicit reference_wrapper(T& t): t_(&t) {}#else
Time of Update: 2018-12-04
概念Function object首先是一個類,它實現了函數叫用作業符T operator()(T), T可以是void類型。最簡單的樣本:for_each#include <iostream>#include <vector>#include <algorithm>using namespace std;class A {public: A(): x_(0) { } void operator()(int x) { cout
Time of Update: 2018-12-04
先看一下boost::visit_each模板,定義在visit_each.hpp檔案中namespace boost { template<typename Visitor, typename T> inline void visit_each(Visitor& visitor, const T& t, long) { visitor(t); } template<typename Visitor, typename T>
Time of Update: 2018-12-04
result_traits模板定義在bind.hpp中,屬於_bi namespace中。// result_traitstemplate<class R, class F> struct result_traits{ typedef R type;};#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) &&
Time of Update: 2018-12-04
Hadoop之HBase快速入門cheungmine2012-4-20本文解決單機(standlone)運行HBase的故障問題。讀者可以快速領略HBase的基本Shell命令。第一步 準備軟體機器環境:Ubuntu11.10+JDK1.6下載軟體:hbase-0.92.1.tar.gz我的使用者名稱為:cl我的機器名為:thinkpad-zh解壓縮hbase:$ tar xzf /home/cl/Downloads/hbase-0.92.1.tar.gz複製到目錄下:/home/hbase-0
Time of Update: 2018-12-04
WTL檔案選擇對話方塊 - CFileDialogImpl 1)首先下面的代碼是直接使用Win32 API來開啟單個檔案的代碼: void WinSDK_OpenFileDemo(){ OPENFILENAME ofn = {0}; char szFile[MAX_PATH]; *szFile = 0; // 開始設定OPENFILENAME結構成員 ofn.lStructSize = sizeof(OPENFILENAME);
Time of Update: 2018-12-04
東西太多,有必要停下來仔細看一下幾個基本的模板類,這裡先看一下add_value_*模板。template< class T, int I > struct add_value_2{ typedef boost::arg<I> type;};template< class T > struct add_value_2< T, 0 >{ typedef _bi::value< T >
Time of Update: 2018-12-04
這裡看一下is_placehoder模板在is_placeholder.hpp中,有如下定義:namespace boost{template< class T > struct is_placeholder{ enum _vt { value = 0 };};} 在arg.hpp中,還有幾個偏特化版本的定義:#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )template< int I >
Time of Update: 2018-12-04
已經走了好遠好遠,現在開始回到我們的目標list_av_N模板:template<class A1> struct list_av_1{ typedef typename add_value<A1>::type B1; typedef list1<B1> type;};template<class A1, class A2> struct list_av_2{ typedef typename
Time of Update: 2018-12-04
* 檔案操作 * 查看目錄檔案 * $ hadoop dfs -ls /user/cl * * 建立檔案目錄 * $ hadoop dfs -mkdir /user/cl/temp * * 刪除檔案 * $ hadoop dfs -rm /user/cl/temp/a.txt * * 刪除目錄與目錄下所有檔案 * $ hadoop dfs -rmr /user/cl/temp * * 上傳檔案 * 上傳一個本機/home/cl/local.txt到hdfs中/user/cl/temp目錄下 *
Time of Update: 2018-12-04
現在看一下storageN模板,定義在storage.hpp檔案中:先來個普通的:namespace _bi{// 1template<class A1> struct storage1{ explicit storage1( A1 a1 ): a1_( a1 ) {} template<class V> void accept(V & v) const { BOOST_BIND_VISIT_EACH(v, a1_, 0);
Time of Update: 2018-12-04
bind_t模板定義在bind.hpp中:#ifndef BOOST_NO_VOID_RETURNStemplate<class R, class F, class L> class bind_t{public: typedef bind_t this_type; bind_t(F f, L const & l): f_(f), l_(l) {}#define BOOST_BIND_RETURN return#include
Time of Update: 2018-12-04
終於到了最後一篇(至少目前我認為是最後一篇) vector<int>::iterator itor = std::find_if(v.begin(), v.end(), boost::bind(Foo, _1));上面的代碼find_if的第三個參數是bind的傳回值,看一下bind定義:template<class R, class F, class A1> _bi::bind_t<R, F, typename _bi::list_av_
Time of Update: 2018-12-04
元件物件模型與ATL實現補遺cheungmine2007-10-11 元件物件模型與ATL實現文章寫好了,但是遺漏了一個關鍵問題。就是還有一個需要修改atlcom.h檔案的地方,我把它更正在這裡。開啟按上篇文章改正後的atlcom0.h,找到下面的函數:STDMETHODIMP IEnumOnSTLImpl<Base, piid, T, Copy, CollType>::Next更正為(只需要改變粗體的地方,一句話而已 )hr = Copy::copy(pelt,
Time of Update: 2018-12-04
如何傳遞引用<<Effective STL>>提到可以讓function object繼承自unary_function<T, void>,現在來試一下.class B : public unary_function<int,void>{public: B():x_(0){ } void operator()(int x){ cout<<++x_<<endl; } int x()
Time of Update: 2018-12-04
題目:服務回應檔SRF直接向用戶端瀏覽器傳圖片流的程式碼片段 cheungmine問題:如何從Web服務端把圖片資料直接寫到流裡,展現在用戶端瀏覽器中為什麼要這樣做:效率、安全。不產生臨時檔案。完全記憶體操作。 我使用VS2005 建立ATL Server項目,合并ISAPI,其他如常。項目名稱:RefreshImg。自動建立同名的虛擬目錄,並且自動部署。 1)改寫RefreshImg.h檔案的下面這段代碼: // 下面是一個有關如何將替換標記用於模具(Stencil)處理器的樣本