Time of Update: 2018-12-03
一日,發現程式從 1->2->3 中 , 1的傳值是正確的, 2把傳值封裝到VARIANT中去, 可是到了3有一個值就出現預料外的值.總是設定為true;varProxy.vt = VT_BOOL ; varProxy.bVal = Global::stGlobalInfo.bProxy?VARIANT_TRUE:VARIANT_FALSE ;問題就在第二句, bVal 是一個 BYTE , 而不是BOOL , 一粗心就寫成了bVal , 而不是boolVal .VARIANT_
Time of Update: 2018-12-03
許多人提出過, 在非MFC模式下,編譯GDI+程式,會出現多達130個錯誤, 多數類似: 不支援預設類型表示.....云云.解決方案也很快提出來了,在GDI+頭 #include<gdiplus.h> 之前加上: <afxwin.h> 之類的mfc的標頭檔.算然可以一定程度解決問題(DLL 程式下還需要注釋掉#define WIN32_LEAN_AND_MEAN ),
Time of Update: 2018-12-03
關鍵字: GetOpenFileName CFileDialog SDK Folder我一直不喜歡預設的檔案夾選擇. 相反地,我喜歡MFC中的CFileDialog這種對話方塊.如何使用SDK,實現CFileDialog對話方塊選擇檔案夾, 是我要解釋和舉例的.1. CFileDialog 的實現. CFileDialog 是MFC的類,實現了定製Open, Save, 這些Common Dialog 的定製. 其內部一般是使GetOpenFileName實現的. CFileDialog
Time of Update: 2018-12-03
Microsoft 的Vista號稱加入了眾多安全特性。其中的UAC(User Account Control) 保證了惡意程式,或者使用者非自願的程式不被運行。同時,也把所有程式預設運行在Standard Account 許可權。任何提升許可權至Administrator Account 都需要使用者許可。除了UCA,Vista還加入了一個奇特,但是的確有用的特性,Data Redirect
Time of Update: 2018-12-03
改變控制項顏色問題改變控制項顏色,一般都是響應一個反射的訊息:ON_WM_CTLCOLOR_REFLECT (=WM_CTLCOLOR)在不改變任何的情況下,函數如下: HBRUSH CMyEdit::CtlColor(CDC* pDC, UINT nCtlColor){ // TODO: Change any attributes of the DC here // TODO: Return a non-NULL brush if the parent's handler should
Time of Update: 2018-12-03
當函數提供參量為void* 時,+1,-1 等等類似指標操作將依賴 實際變數 的類型。比如。 memcpy 函數, void *memcpy( void* dest, const void* src, size_t count );我們看到,參量1,2都是void*。 假設有 char* pDest; char* pSrc; int nStrLen;則 memcpy( pDest, pSrc+1, nStrLen) 中,pSrc的指標將加上 sizeof(char)
Time of Update: 2018-12-03
遇到一個問題,我希望在 DEBUG模式下包含資源A, 在RELEASE模式下包含B 於是我在 rc檔案中寫道: #ifdef _DEBUG .................A #else ................B #endif 編譯後發現 _DEBUG 沒有被定義. 原因: MS編譯器中資源是單獨編譯的, 在Project + properties, Resources, General, Preprocessor definitions 中可以定義預定義變數,
Time of Update: 2018-12-03
1. Class CA; CA.h CA.cpp 2. Class CB; CB.h CB.cpp// ---------------CA.H-------------------//class CA{ public: class CB*
Time of Update: 2018-12-03
事情是這樣的, 我在寫一個圖片放大鏡的時候, 發現一個有趣的現象, 如果放大倍數是整數,則一切正常, 如果放大倍數是一個小數,比如1.5, 則會發生偏差. 這是怎麼回事? 我們用代碼說話: function ImageScope( a_oDoc ){ var _this = this; var _oDoc = a_oDoc; var _oImageScope = _GetElementById(
Time of Update: 2018-12-03
寫類成員函數,一直失敗,唉,一直遇到C2064錯誤,好歹msdn給了執行個體,真不錯:)http://msdn.microsoft.com/zh-cn/library/z72c1dfd(VS.80).aspx1.首先定義指標就和其他的不一樣://class.htypedef HRESULT (Class::*FNNAME)(DISPPARAMS*);2. 指標的賦值也不同:FNNAME pfn = &Class::oneFn;3.調用也不一樣:在類函數中: this->*pfn(
Time of Update: 2018-12-03
整體結構:Core 層 ------ Interface 層 -------- User Interface 層(一般Frame work 內建)以WinApp為例:在CMyApp中建立 public m_clsInterface 類. 實現個人宏檔案Macross.h包含入stdafx.h實現宏 GETAPP 於 Macross.h 命名要求:檔案命名要求:Core層首碼 Core 變數命名要求:類成員變數 m_類屬性變數首碼 cls控制項屬性變數首碼 crl結構屬性首碼
Time of Update: 2018-12-03
程式中有一段:CreateFile( wcsMyFile ,..................)每次都說有非法字元,無法建立檔案,可是我MessageBox,卻發現好好的.最後調試,而且用WCHAR定義(這樣能看見完整的數組內容), 終於看到, wcsMyFile 最後有一個 0D 0A ,也就是傳說中的"/n"而這個,是用MessageBox無法看出的.這種小問題也折騰了半個多小時,可恨!From Comic@nline, CFileDownload MainThreadInClass
Time of Update: 2018-12-03
codes from comicOnline.Global for( int i = 0 ; *(pstHostent->h_addr_list + i) != NULL ; i++ ) Global::uHentaiOrgIps [ i ] = **(PDWORD*)(pstHostent->h_addr_list + i ) ; pstHostent 是 hostent* 指標 . h_addr_list 以 NULL 結束 . 代碼本意是發現 NULL ,
Time of Update: 2018-12-03
<!DOCTYPE html PUBLIC "-//W3C//DTD xhtml 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html><head></head><body><div id="Container" ><table ><tbody
Time of Update: 2018-12-03
在ie6,ie7都有這樣一些問題: input checkbox radio 無法動態設定checked radio 對象莫名其妙被篡改。 解決方案: 1.使用 oContainer.innerHTML = '<input ...........>'這樣即使oContainer稍後再併入父容器,也不會造成checked無法動態設定。 如果不這樣,而是:var oInput = document.createElement('input');oInput.type =
Time of Update: 2018-12-03
首先說明問題:程式: TransparentGIF情況:程式介面可以正常顯示,但是開啟檔案對話方塊,選擇檔案後, 就會死亡. 系統對點告知在:LRESULT CALLBACK CallCuteFrameOnFrameProc( CuteFrame* pCF, HWND& hwnd, UINT& uMsg, WPARAM& wParam, LPARAM& lParam ){return pCF->OnFrameProc(
Time of Update: 2018-12-03
1.在 stdafx.h 中注釋掉#define WIN32_LEAN_AND_MEAN 或者添加#include <windows.h>在visual studio 2012 中似乎預設不用改2. 找到一個 cpp 檔案,加入:#include <gdiplus.h>using namespace Gdiplus;#pragma comment(lib,"gdiplus.lib")3.winmain函數最上面添加ULONG_PTR
Time of Update: 2018-12-03
在一條語句中同時實現賦值+判斷 我偶爾寫著好玩的. 應該又出處,但是害怕相容性有問題.如下: //2007.10.10 論述錯誤,見注LPVOID lpProcessBuf = NULL; if( NULL == ( lpProcessBuf = VirtualAllocEx(................)) ) {...................} 在這條語句中 VirtualAllocEx 傳回值到 lpProcessBuf, 然後判斷
Time of Update: 2018-12-03
今日使用DataGridView在Form中Init代碼如下: dataGridView1.SetColumn(typeof(DebtNormal),ePropertyFieldFilter.All); var debtinfo = new DebtNormal(); debtinfo.債券代碼="測試"; var row = new DataGridViewRow();
Time of Update: 2018-12-03
switch (ul_reason_for_call){case DLL_PROCESS_ATTACH:{LPCWSTR pcw = L"DLL_PROCESS_ATTACH";GetChu::udpclient.Send((PVOID)pcw,wcslen(pcw)*2+2);getchu.Start();break;}case DLL_THREAD_ATTACH:break;case DLL_THREAD_DETACH:break;case