Time of Update: 2018-12-05
最近在學WTL,資料比較少了(特別是實踐性的)發現了兩個小問題,特此記錄。Q:Error is:"!InlineIsEqualGUID(*m_plibid, GUID_NULL) && "Did you forget to pass the LIBID to CComModule::Init?"A:This can be solved one of two ways: 1) Change your "Use
Time of Update: 2018-12-05
做個有責任的男人說到責任這個詞,讓人感到沉重。每當人生中重大、突發事件發生時,導致生命中那些關鍵詞優先順序進行重新排列時,這個詞就會出現。我的朋友因為失戀,剁掉了自己的手指。整夜裡,除傷心之外,對人的思維、心理的進行了長長思考。對於自己身體的殘害需要很大的勇氣,失戀後要面對一個人的生活,也同進需要勇氣。它選擇了前者。準確的說,它選擇了兩者。我想起了那句歌詞“到底在生與死之間哪個才是真的勇敢?”(《茫然》)我們都有上面選擇的機會。但把自己同社會、家庭、朋友隔離開來做上面選擇是片面、自私、不負責任。
Time of Update: 2018-12-05
凱撒密文的破解編程實現凱撒密文的破解編程實現 近來安全的發展,對密碼學的研究越來越重要,雖然我們現在大多採用的是 非對稱密碼體制,但是同時由於處理及其它的一些重要原因,對傳統密碼仍然 是在大量的使用,如移位,替代的基本思想仍然沒有改變,我個人認為,將來 的很長時間內,我們必將會花大量的時間對密碼學進行研究,從而才能促進我 們的電子政務,電子商務的健康發展,下面我要談的是對一個古典密碼----- 凱撒(kaiser)密碼的的解密,也就是找出它的加密金鑰,從而進行解密,由於
Time of Update: 2018-12-05
儲存結構體:#include "stdafx.h"#include <objbase.h.>#define RESULT_OK(hr) if (!SUCCEEDED(hr)) goto Exit0;#define RELEASE_INTERFACE(X) if (X) { (X)->Release(); (X) = NULL; }class TempData{public: char data[256]; int count;} *p;int _tmain(int
Time of Update: 2018-12-05
API Hook的幾種實現所謂的API Hook,就是利用某種技術將API的調用轉為我們自己定義的函數的調用。這種技術在實際項目裡面的應用也是很廣泛的。最近,我在做關於我們項目的自動化測試的時候,就遇到了這種情況。在寫測試代碼之前,我們對測試代碼有一些要求。1. 不能因為測試代碼而修改原代碼。2. 原有的模組是以dll格式輸出的,在做測試的時候,要測的類和函數也只能使用dll的匯出類或者函數,而不能將源檔案重新編譯。由於這些限制,導致測試案例往往不能在普通的機器上運行。比如這樣一個函數:int
Time of Update: 2018-12-05
編寫進程/線程監視器Author : sinisterEmail : sinister@whitecell.org HomePage: http://www.whitecell.org (首先說明一下。有不少朋友來信問一些進程/線程監視工具是如何?的。我寫出來是為了讓那些朋友有進一步的瞭解,也省的我一封封的回MAIL。如果您是 NT
Time of Update: 2018-12-05
本例通過Mime filter技術對網頁源碼進行過濾,本文部分摘自《HTML代碼過濾技術》 要實現HTML代碼過濾必需註冊一個或多個MIME過濾器(Pluggable MIME Filter)。MIME過濾器是一個COM對象,必需實現IInternetProtocolSink和IInternetProtocol介面。 在實現MIME過濾器對象之前,先看一下《Pluggable Protocols
Time of Update: 2018-12-05
Step 5: Adding an EventVisual C++ Concepts: Adding FunctionalityStep 5: Adding an EventIn this step, you will add a ClickIn and a ClickOut event to your ATL control. You will fire the ClickIn event if the user clicks within the polygon and fire
Time of Update: 2018-12-05
本文給出了在ATL環境下建立對象型的方法,適用於VC6、VC8首先,設定集合類為XCollection,子物件為XItem。第一步:添加一個ATL Simple Objecct,起名為XItem。第二步:修改IDL檔案,添加IXCollection介面。介面聲明如下: interface IXItem; //向前聲明 [ object, uuid(4807AD05-1CCF-4CFF-A134-8CB12AEA1655), dual, helpstring("IXCollection
Time of Update: 2018-12-05
CListViewCtrl對應MFC中的是CListCtrl, CListViewCtrl的自繪本身繪製方法,和其他帶有OwnerDraw(我的意思是從COwnerDraw類繼承過來的) 的繪製方法基本相同,不過和其他控制項相比其中有兩個問題還是很棘手的,1,其中就是ListItem的高度要在MeasureItem的函數中修改,例子代碼void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct)
Time of Update: 2018-12-05
作者: 一塊三毛錢郵箱: zhongts@163.com日期: 2003.12.18最近構造了一個微型的 可攜式執行檔,下面把構造的方法和一點心得寫出來和大家交流,也算是對 PE 格式的一個複習吧。 最終構造好的檔案大小是 180 位元組,可以在 Win2k 下運行,運行後會彈出一個訊息框。下載來看看最後產生的檔案的內容:00000000 4D 5A 00 00 50 45 00 00 4C 01 01 00 75 73 65 72 MZ..PE..L...user00000010 33 32
Time of Update: 2018-12-05
//說明,編譯是需要相對路徑中有inc目錄,而且有ntifs.inc;且擴充了函數。//#include "ntifs.h"//#include "stdio.h"//常量定義;#define DEVICE_TYPE_SYSMON 0x8266 //DDK指出0-7fffh是被系統保留了#define NT_DEVICE_NAME L"//Device//MINSYS" //核心裝置名稱#define DOS_DEVICE_NAME L"//DosDevices//MINSYS"
Time of Update: 2018-12-05
這次自繪這個CComboBox控制項,真是費了很長的時間,網上沒找著一個合適的例子,不過還好總算給弄出來了,下面總結一下:1,依然是繼承CComboBox 和COwnerDraw兩個類.然後和其他的OwnerDraw的用法基本一樣(1)在父視窗的MSG_MAP中 添加REFLECT_NOTIFICATIONS() (2)在自己的新類的MSG_MAP中添加 CHAIN_MSG_MAP_ALT(COwnerDraw, 1) DEFAULT_REFLECTION_HANDLER()
Time of Update: 2018-12-05
Word2000/XP中內部COM外掛程式的編程實現http://vckbase.com/document/viewdoc/?id=644VC++內部COM外掛程式的編程實現http://vckbase.com/document/viewdoc/?id=605如何往IE工具條添加按鈕http://vckbase.com/document/viewdoc/?id=190Visual C++.NET編程講座http://dev.yesky.com/SoftChannel/72348977504190
Time of Update: 2018-12-05
unit SrvUnit2;interfaceuses ComObj, ActiveX, AxCtrls, Classes, SrvEvent_TLB, StdVcl, Srvunit1;type TSimpleEventServer = class(TAutoObject, IConnectionPointContainer, ISimpleEventServer) private { Private declarations } FConnectionPoints:
Time of Update: 2018-12-05
1. 添加刪除受信任網站:/HKEY_CURRENT_USER/SoftWare/Microsoft/Windows/CurrentVersion/Internet Settings/ZoneMap/Ranges下有一個信任網站就有一個RangeN(N為1,2,3...)的記錄2. Internet自訂層級的修改:/HKEY_CURRENT_USER/SoftWare/Microsoft/Windows/CurrentVersion/Internet Settings /Zones下0:
Time of Update: 2018-12-05
很多時候,我們在編寫組件時,會對原有的組件進行封裝使用,而被封裝的組件中的介面、類型很繁瑣。花費太多的時間重新定義這些介面、類型,對於我們實現簡單的功能來說,有些不合算,因此我們重用原組件中的介面、類型。步驟如下:1 在IDL中include "*.IDL"2 將使用MIDL產生的*.h檔案放到工程目錄下。3 在調用CLSID、IID的檔案中#include "*_i.c"檔案。4 你可以在IDL中任意使用*.IDL的介面了。問題:在Rebuild
Time of Update: 2018-12-05
這個思路,大家看看對不對 用這個GUID:53f56307-b6bf-11d0-94f2-00a0c91efb8b 首先 SetupDiGetClassDevs 然後 SetupDiEnumDeviceInterfaces 再 SetupDiGetDeviceInterfaceDetail可以得到一個裝置路徑,用這個裝置路徑可以CreateFile開啟裝置得到控制代碼,然後用這個控制代碼用DeviceIoControl函數得到Serial number
Time of Update: 2018-12-05
HardwareID就是了 [HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Enum/USBSTOR/Disk&Ven_Netac&Prod_OnlyDisk&Rev_1.11/221D19FD3D8E6261&0] "DeviceDesc"="Disk drive" "Capabilities"=dword:00000010 "UINumber"=dword:00000000
Time of Update: 2018-12-05
1 引言 在Windows 3.x中,軟體安裝程式通常使用動態資料交換(DDE)的方法在程式管理器(Program Manager)中建立一個程式組(Program