Time of Update: 2018-12-06
忽忽,今天是七夕,可惜她不在身邊。 暑假的日子就那麼波瀾不驚,日子一天天地過。考研的準備還在繼續進行之中。同時也隨意看一些技術方面的書籍。 《Windows via
Time of Update: 2018-12-06
windows系統下,程式防止多開的幾種常見方法: 1)使用FindWindow API函數。 通過尋找視窗標題(或/和類名)來判斷程式是否正在運行。如果找到了,表明程式正在運行,這時可退出程式,達到不重複啟動並執行效果;反之表明程式是第一次運行。 這種方法不適用於以下情況,程式的標題是動態變化的、系統中運行了相同標題(或/和類名)的程式 2)Mutex/Event/Semaphore
Time of Update: 2018-12-06
LoadMenu:HMENU LoadMenu( HINSTANCE hInstance, // handle to module LPCTSTR lpMenuName // menu name or resource identifier);其中參數 lpMenuName是用MAKEINTRESOURCE產生的,而#define MAKEINTRESOURCEA(i) (LPSTR)((DWORD)((WORD)(i)))#define MAKEINTRESOURCEW(i)
Time of Update: 2018-12-06
全域共用資料 #pragma data_seg ("shareddata") HWND sharedwnd=NULL;//共用資料 #pragma data_seg() 編譯選項加入 /SECTION:shareddata,rws ============================用pragma設定共用資料: #pragma data_seg("MYSEC") char
Time of Update: 2018-12-06
AllocConsole(); // 開啟控制台資源freopen( "CONOUT$", "w+t", stdout );// 申請寫freopen( "CONIN$", "r+t", stdin ); // 申請讀printf("Hello World!\n"); // 寫資料char ch = getchar(); // 讀資料FreeConsole(); /
Time of Update: 2018-12-06
The last summer,最後一個夏天,最後一個暑假…… 這個暑假,沒有了以前暑假的嬉鬧,更多的是一份平靜與單調…… 考研終於進入了全面準備的階段,所以原定計劃的社會實踐取消。可是家裡畢竟不比學校,似乎少了一種氛圍,導致進度並不是非常的快。 回家的時候帶了一本張逸先生的《軟體設計精要與模式》,回家後隨意翻了幾次,感覺有點高深,因此看了4章之後也沒有再翻,以後再好好修鍊吧。 《Windows via
Time of Update: 2018-12-06
公用語言運行庫支援 /clr//#using "ValidateSxt.dll"//託管//using namespace ValidateSxt; ////託管C++ //Check ^ck = gcnew Check(); //ck->FilePath = "F:\\VB\\2Ou.sxt"; //ck->GenCheck();//#import "msxml6.dll" //XML中使用#import "ValidateSxt.tlb"
Time of Update: 2018-12-06
HDC dc=GetDC(hwnd);HDC BUFFER=CreateCompatibleDc(dc);HBITMAP bmp=(HBITMAP)loadimage(........SelectObject(buffer,bmp)bitblt(dc,0,0,buffer.......如何在程式中獲得其他程式的 表徵圖?兩種方法: (1) SDK函數 SHGetFileInfo 或使用 ExtractIcon獲得表徵圖資源的 handle, (2) SDK函數 SHGetFileInfo
Time of Update: 2018-12-06
前一階段閑著無聊,用遠程線程注入的方法把DLL注入到Explorer.exe進程實現音樂迴圈播放。 在DLL中的代碼是這樣的:CodeCode highlighting produced by Actipro CodeHighlighter
Time of Update: 2018-12-06
一般來說,VB和VC共同編程有3種方式:一種是VC產生DLL,在VB中調用DLL;一種是VC產生ActiveX 控制項(.ocx),在VB中插入;還有一種是在VC中產生ActiveX Automation伺服器,在VB中調用。相對而言,第一種方法對VC編程者的要求最低,但要求你的夥伴進行配合,我推薦這種方法。 先說說VC++的編程。首先在VC++中產生Win32
Time of Update: 2018-12-06
最近搞一個協議,以實現隱蔽通道,其中需要使用CRC校正演算法,由於資料位元數比較少,最後決定使用位的CRC校正演算法。 該演算法主要就是實現一個模二運算,基本原理就是異或,移位。 模二運算的演算法如下(C語言描述):模二運算Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->// CrcMOD2函數////////////////////////
Time of Update: 2018-12-06
1.對於字串,如果是LPCTSTR ,就用byval !否則只可能是CString,這種類型VB無法處理!另外,VC中也沒有string類型2.對於VB系統有定義的類型[in],如果API中是指標就用?如IStream* stream,ByVal stream As IUnknown3.對於VB系統有定義的類型,如Stream\ Image [in],如果API中不是指標,4.對於VB系統無定義的類型[in],如果API中是指標就用byref ,如LPRECT lpRect 定義為 byref
Time of Update: 2018-12-06
class CMyexception {}; try { int nTemp = 0; if( nTemp == 0 ) { throw(nTemp); //也可以寫成 throw nTemp;
Time of Update: 2018-12-06
VB的字串格式是BSTR,如果你瞭解COM編程,你對這個類型不會陌生,而DLL中的字串變數是標準C字串格式,你應該將返回的字串變數的類型定義為類_bstr_t,它是VC的類,封裝了BSTR的操作,在MFC和ATL中都可用。VB中的字串是用SysAllocString申請空間的,如果不想用COM的話把VC中的函數改為: EXTERN_C BSTR WINAPI RetStr() { char
Time of Update: 2018-12-06
RECT rect; GetClientRect(hwnd,&rect); HDC hdcmem,hdc; HBITMAP hbitmap,hbitmapOld; hdc=GetDC(hwnd); hdcmem=CreateCompatibleDC(hdc); hbitmap=LoadBitmap(hInst,MAKEINTRESOURCE(IDB_BACKGROUND));
Time of Update: 2018-12-06
stdPicture類一共有兩個介面,其中就包括Picture介面,另一個是IPicture介面 Picture介面是stdPicture的預設介面,所以一定程度上,說stdPicture類型等於Picture類型也並沒有錯(因為很少使用IPicture介面) IPicture介面比Picture介面多了一些屬性,如下面這些(不完全): Attributes CurDC KeepOriginalFormat Type等等
Time of Update: 2018-12-06
1.可以先在空白頁上段文字的末尾先點下滑鼠,在自動空白頁下段文字的開頭,按住shift的時候再點下滑鼠,選擇空白頁,再刪除(解決了我的問題)2.如果是插入分頁符造成的空白頁,少的話,刪除分頁符就行,就是到空白頁頂部按退格鍵。(普通視圖下或開啟編輯標記會顯示分頁符)3.如果分頁符很多,可以編輯/替換/進階/特殊字元/人工分頁符/全部替換就可以了。4.如果是你畫了一個表格,佔了一整頁,造成最後一個斷行符號在第二頁刪不了,可以將表格縮小一點或者將上面或者下面頁面邊界設小一點,在檔案/版面設定中,上下的
Time of Update: 2018-12-06
VB的字串數組是由BSTR組成的SafeArray類型,所以VB裡DLL函數如此聲明: Private Declare FunctionMyFun Lib "MyDll" (ByVal strarr As Variant) As Long 建立MFC DLL工程,名為 ShowVBStrArr 編譯產生 ShowVBStrArr.DLL DLL函數原形: extern "C" BOOL __stdcall ShowVBStrArray(VARIANT
Time of Update: 2018-12-06
方法一,使用ConvertBSTRToString。例如: #include #pragma comment(lib, "comsupp.lib") int _tmain(int argc, _TCHAR* argv[]){ BSTR bstrText = ::SysAllocString(L"Test"); char* lpszText2 = _com_util::ConvertBSTRToString(bstrText); SysFreeString(bstrText); // 用完釋放
Time of Update: 2018-12-06
PrintWindow(); ::PrintWindow(hWnd, hdcMem, PW_CLIENTONLY);可以必須是頂層視窗;最小化不行,只是被遮住視為可見,SW_HIDE視為隱藏列印失敗;不能過濾子視窗!WM_PRINT:::SendMessage(hWnd, WM_PRINT, (WPARAM)hdcMem, PRF_CLIENT|PRF_ERASEBKGND|PRF_NONCLIENT|PRF_CHILDREN);