Time of Update: 2018-12-04
虛函數是C++中非常重要的一個特性,要熟練的掌握好C++的幾大特性,虛函數的相關知識必不可少,下面就來分析一下虛函數表的結構, class CBase{public: virtual void f1(){cout<<"CBase::f1()"<<endl;}; virtual void f2(){cout<<"CBase::f2()"<<endl;}; virtual void f3(){cout<<"CBase::f3()"<&
Time of Update: 2018-12-04
MFC功能已經非常強大,自己做介面庫也許沒什麼意思,但是這個過程中卻能學到很多東西。比如說:視窗類別的封裝,從全域視窗訊息處理到視窗對象訊息處理的映射方法:
Time of Update: 2018-12-04
函數功能 該函數改變指定視窗的屬性.函數也將指定的一個32位值設定在視窗的額外儲存空間的指定位移位置。函數原型 LONG SetWindowLong(HWND hWnd,intnlndex,LONG
Time of Update: 2018-12-04
The CREATESTRUCT structure defines the initialization parameters passed to the window procedure of an application. These members are identical to the parameters of the CreateWindowEx function. Syntax
Time of Update: 2018-12-04
今天寫了一個SDK程式,關閉程式時調用PostQuitMessage(WM_QUIT) ,程式沒有結束,工作管理員顯示其佔了90%多的CPU,必須手動結束進程。下面是退出程式Code:LRESULT CALLBACK WindowProc (HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam){ switch (message) { case WM_DESTROY: PostQuitMessage(0);
Time of Update: 2018-12-04
HANDLE WINAPI CreateIoCompletionPort( __in HANDLEFileHandle, __in HANDLE ExistingCompletionPort, __in ULONG_PTR CompletionKey, __in
Time of Update: 2018-12-04
以前寫MFC的DLL的時候,總會在自動產生的程式碼架構裡看到提示,需要在每一個輸出的函數開始添加上AFX_MANAGE_STATE(AfxGetStaticModuleState())。一直不明白這樣做的含義,也一直沒有這樣做,而且代碼也工作得好好的,所以感覺這好像一句廢話。最近的項目中,需要在DLL裡使用MFC產生介面,這才發現一旦資源放在不同的動態庫裡,而且還和多線程攪和在一起的時候,事情就變得異常的複雜,以前對MFC的一知半解已經不足與應付了。程式莫名的崩潰,莫名的ASSERT,資源怎樣也
Time of Update: 2018-12-04
文章目錄 MFC and wxWidgets macrosMFC and wxWidgets classes MFC and wxWidgets macrosMFC versionwxWidgets
Time of Update: 2018-12-04
2010-03-25, 21:41:29#include "stdafx.h"#include <windows.h>//#include <iptypes.h>#include <iphlpapi.h>#include <NtDDNdis.h>#pragma comment ( lib, "iphlpapi.lib" ) BOOL WINAPI GetPhyMacAddress(char* strServiceName){BOOLbRet=
Time of Update: 2018-12-04
下表列出了 Visual C++ 附帶的 ATL 的各版本號碼。ATL 版本 Visual C++ 版本 1.0, 1.1, 2.0無。在 Visual C++ 4.x 時間範圍內發布到 Web。3.0Visual C++ 6.07.0Visual C++ .NET 20027.1Visual C++ .NET 20038.0Visual C++ 2005 下表列出了 Visual C++ 附帶的MFC 的各版本號碼。MFC
Time of Update: 2018-12-04
外掛程式寫好了,下面就該做一個安裝包了。最好再提供更新功能,以便在外掛程式有更新的時候,及時通知使用者進行外掛程式更新。我們開發的時候,直接將產生的dll丟到Firefox安裝目錄下的plugins目錄就可以工作了,但是你如何說服讓使用者來手動完成這件事情?估計很難。因此,提供一個安裝包,可能是最好的選擇。使用者只需要點幾下滑鼠就可以完成外掛程式的安裝了。不過到寫這篇文章的時候,我還不清楚怎麼讓安裝包經過Mozilla的驗證,因為沒有經過驗證的外掛程式,在安裝的時候會出現“僅安裝信任作者的附加組
Time of Update: 2018-12-04
// TestIOCP.cpp : Defines the entry point for the console application.#include "stdafx.h"#include <WINSOCK2.h>#include <stdio.h>#define PORT 5150#define MSGSIZE 1024#pragma comment(lib, "ws2_32.lib")typedef enum{ RECV_POSTED}OPERATION_
Time of Update: 2018-12-04
先說一句題外話,上一節一開始我提到了由於.rc導致我自己寫的外掛程式不能被FF識別的問題,今天終於找到答案了。在這篇文章中:https://developer.mozilla.org/en/Gecko_Plugin_API_Reference/Plug-in_Development_Overview, 有這麼一段話:In your development environment, make sure your language is setto "US English" and the
Time of Update: 2018-12-04
上篇文章學習了npruntime的例子程式,接下來迫不及待地想實現自己的一個外掛程式了。我決定使用VS
Time of Update: 2018-12-04
今天我們來比較 MFC 和 wxWidgets 的最核心的代碼,也就是MFC的訊息映射和wxWidgets的事件表。1.MFC 中的訊息映射宏 DECLARE_MESSAGE_MAP() BEGIN_MESSAGE_MAP(theClass, baseClass) END_MESSAGE_MAP()展開後代碼如下:#ifdef _AFXDLL#define DECLARE_MESSAGE_MAP() /private: / static const AFX_MSGMAP_
Time of Update: 2018-12-04
上一節寫了一個Extension,添加了一個按鈕在FF3的工具列上。接下來我準備在這個基礎上添加一個功能,點擊按鈕,讀取本地磁碟上一個檔案的內容,並顯示出來。怎麼做呢?用Javascript嗎?因為我最終的目標是從伺服器上下載文件,也可能會傳輸本地檔案到伺服器上,用Javascript訪問本地檔案有諸多限制,而且也無法完成複雜的功能。所以最好是能夠調用我編寫的DLL那就最好不過了。怎麼做呢?還是在Mozilla網站上找找看吧。在Mozilla網站上看到,可以自己編寫Component來完成一些自
Time of Update: 2018-12-04
文章目錄 哪些程式在使用WinPcap什麼是WinPcap做不到的如何搭建開發環境 WinPcap: WinPcap 中文技術文檔介紹本手冊提供了WinPcap編程介面的描述及其原始碼。它與詳盡的WinPcap核心資料一起,為編程人員提供了詳細的函數與結構的描述,同時也提供了若干教程和程式範例。 您可以點擊頁面頂部的導航連結,或者使用頁面左邊的樹形控制項,來跳轉到您感興趣的內容。 本文檔使用 the Doxygen
Time of Update: 2018-12-04
vs2003,vs2005,vs2008:0 將libjpeg_vc7裡的libjpeg.lib替換win32depends/lib下的vc6版本的libjpeg.lib1 將include和lib設定成VS200x的包含和庫目錄2 將win32depends/include和win32depends/lib設定成VS200x的包含和庫目錄3
Time of Update: 2018-12-04
前幾天一直在忙乎著研究和閱讀XUL和FF的Extension相關資料,今天突然發現,我要做得事情似乎不是用Extension來實現的。因為原來的應用是一個ActiveX,網頁會將一些參數通過ActiveX控制項傳遞進來,而ActiveX接到這些參數以後,會和伺服器進行一些資料互動,最後調起本地的執行程式。似乎我走了一些彎路,方向不對。我要做得事情應該是編寫一個Plugin,而非Extension。及時修正了下一步的研究計劃,那麼就讓我們先來編譯和測試Mozilla提供的一個小例子吧。原文串連在這
Time of Update: 2018-12-04
Q:前幾次我們討論的都是裝置名稱比較清楚的情況,有了裝置名稱(路徑),就可以直接調用CreateFile開啟裝置,進行它所支援的I/O操作了。如果事先並不能確切知道裝置名稱,如何去訪問裝置呢?A:訪問裝置必須用裝置控制代碼,而得到裝置控制代碼必須知道裝置路徑,這個套路以你我之力是改變不了的。每個裝置都有它所屬類型的GUID,我們順著這個GUID就能獲得裝置路徑。 GUID是同類或同種裝置的全球唯一識別碼,它是一個128 bit(16位元組)的整形數,真實面目為typedef struct