Time of Update: 2018-12-03
有時候我們在寫伺服器端的程式的時候,經常需要用到日誌,這幾天在做些事情的時候,發現居然還沒有我自己經常使用的一個日誌類,正好現在又找到一個非常不錯的日誌類,所以把他記錄下來,留待以後直接拿來用就可以了:Log.h////////////////////////////////////////////////////////////////////////#if !defined(__TEST_LOG__INCLUDED_)#define __TEST_LOG__INCLUDED_#if
Time of Update: 2018-12-03
調用(calling)機制從彙編時代起已經大量使用:準備一段現成的代碼,調用者可以隨時跳轉至此段代碼的起始地址,執行完後再返回跳轉時的後續地址。 CPU為此準備了現成的調用指令,調用時可以壓棧保護現場,調用結束後從堆棧中彈出現場地址,以便自動返回。借堆棧保護現場真是一項絕妙的發明,它使調用者和被調者可以互不相識,於是才有了後來的函數和構件,使吾輩編程者如此輕鬆愉快。若評選對人類影響最大之發明,在火與車輪之後,筆者當推壓棧調用。
Time of Update: 2018-12-03
轉自部落格:http://www.cnblogs.com/phinecos/archive/2008/03/08/1096691.html作者:洞庭散人“我現在項目是一個控制台程式,用到的Win32API都是與介面無關的,今天需要加入定時器重新整理的功能,由於沒有訊息迴圈,所以WM_TIMER訊息應該如何處理呢?綜合了下網上找到的資料,寫了個簡單的demo,個人以為這種在一個線程中建立定時器,再通過指定的回呼函數來處理定時器觸發的模式是比較好的。”demo: #include
Time of Update: 2018-12-03
今天在部落格園上看到一個部落格,是關於Winform分頁控制項使用詳細介紹 ,覺的這個控制項非常不錯,所以就把這封裝好的控制項down下來,試用一下,這就碰到問題了,那如何在工具箱中添加控制項呢?這是我經過 摸索尋找的一條路。首先在工具箱右鍵點擊 添加選項卡,然後添加一個分頁控制項的選項卡,如下:然後再分頁控制項的選項卡中右鍵點擊 選擇項,如下:點擊 瀏覽,選擇 你下載下來的分頁控制項的dll,就是WHC.Pager.WinControlEx.dll, 點擊確定,則點擊確定,即可看到
Time of Update: 2018-12-03
最近在做的一個項目中用到了網域名稱解析,用c#來進行解析的。其實在c#中已經有一個Dns類,可以直接拿來進行解析。下面是我寫的一個解析類:class Resolve { private IPAddress[] m_arrayIPs; private string _hostName; public void ResolveIP(string s_Host) { try {
Time of Update: 2018-12-03
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Data.OleDb;using System.Data;using System.Data.SqlClient;/// <summary>///SqlConnDb類,適用於Sql資料庫操作/// </summary>public class SqlConnDb{
Time of Update: 2018-12-03
位元運算 位元運算的運算分量只能是整型或字元型資料,位元運算把運算對象看作是由二進位組成的位串資訊,按位完成指定的運算,得到位串資訊的結果。位元運算符有: &(按位與)、|(按位或)、^(按位異或)、~ (按位取反)。 其中,按位取反運算子是單目運算子,其餘均為雙目運算子。 位元運算符的優先順序從高到低,依次為~、&、^、|, 其中~的結合方向自右至左,且優先順序高於算術運算子,其餘運算子的結合方向都是自左至右,且優先順序低於關係運算子。 (1)
Time of Update: 2018-12-03
有兩個簡單法,其一:不讓用TryParse,那自寫一個唄:using System;class test{static void Main(){string s1=Console.ReadLine();int i;if(myTryParse(s1,out i)){Console.WriteLine("成功:"+i);}else{Console.WriteLine("失敗:請輸入數字!");}}static bool myTryParse(string s,out int i){try{int
Time of Update: 2018-12-03
建議先啟動一個後台線程按鈕,感覺沒啥吧?然後再啟動一個前台線程。看看是否是前台線程很頑強的跟你沒完!絕對讓你看一遍永不忘記!using System;using System.Drawing;using System.Windows.Forms;using System.Threading;namespace WindowsFormsApplication1{ public partial class Form1 : Form { public
Time of Update: 2018-12-03
Shiboken的資料真少,僅僅為了寫一個小小的demo就大費周折。但不管怎樣,經過幾個月斷斷續續的瞭解,總算可以為純C++的庫和Qt的庫建立python的綁定了。本文前提:熟悉cmake,能夠用cmake構建C++與Qt的程式和庫安裝有Python和Shiboken的開發環境安裝有PySide和Qt4(4.6及以上)的開發環境注意:若在windows下,Shiboken和PySide開發環境需要自己編譯接下來記錄兩個例子:(本文例子僅在Windows和Ubuntu環境下進行過測試)建立C++庫
Time of Update: 2018-12-03
有網友抱怨:哪個大牛能幫幫我,講解一下訊號槽機制的底層實現?不要那種源碼的解析,只要清楚的講講是怎麼發送訊號,怎麼去選擇相應的槽,再做出反應。也就是類似於一個訊號槽的相應流程。。。求解啊!!!看了源碼,真的是一頭霧水。。。撞牆的心都有了~~~~ 本文使用 ISO C++ 一步一步實現了一個極度簡化的訊號與槽的系統(整個程式4個檔案共121行代碼)。希望能有助於剛進入Qt世界的C++使用者理解Qt最核心的訊號槽與元對象系統是如何工作的。另:你可能會對 從 C++ 到 Qt
Time of Update: 2018-12-03
在Qt論壇經常看到網友抱怨:QPixmap("dbzhang800.png") 載入圖片不成功QFile("dbzhang800.txt") 開啟檔案失敗...遇到這種問題,我一般回答:請注意區分進程的"工作目錄"與程式所在的目錄。但這種回答似乎還是顯得太蒼白了,既然如此,整理一下吧。用到了相對路徑,你清楚"相對"是相對那個目錄的嗎?當你抱怨Qt時,你知道它與Qt無關嗎?Qt 是 C++ 的庫,我們還是從C++開始看吧(註:你可能會對 用ISO C++實現自己的訊號槽(另類的Qt學習)以及 從
Time of Update: 2018-12-03
到了main.c,其實main.c中的大部分的內容是調用函數來實現初始化的工作,但是還是將它看完了。下面就是代碼了。主要參考的是linux核心完全注釋,在一些不太明白的地方,參考網上的介紹。廢話少說。還有很長的路啊。努力啊O(∩_∩)O~。 /* * main.c功能描述。 *///main.c程式的主要功能是利用setup.s程式取得的系統參數設定系統的// 的根檔案裝置號和一些全域變數。這些變數至兩名了記憶體的開始地址// 系統包含的記憶體容量和作為快取區記憶體末端地址。如果還定義了//
Time of Update: 2018-12-03
有時候在網上看到一段優秀的代碼,心動之餘立即用Ctrl+C,Ctrl+V把它拷下來運行一下先,結果卻發現該網站不厚道,連每行之前的行號也一同複製下來了,手動刪除這些行號實在太麻煩,只好寫一個小程式,來刪除這些行號了。上代碼://先建立in.txt, out.txt這兩個檔案//然後把要調整的代碼放入in.txt中,運行這個程式,//那麼,out.txt中的程式就是我們想要的#include <iostream>#include <fstream>#include <
Time of Update: 2018-12-03
以前在LINUX環境下,想輸入密碼(關閉回顯)時都是用getpass函數,今天無意中看到手冊上說:This function is obsolete. Do not use it. 那我就自己實現一個類似的功能吧(功能相同,原理不同)程式的思路很簡單:關閉回顯,讀取輸入,恢複設定。上代碼:#include <stdio.h>#include <stdlib.h>#include <termios.h>#include
Time of Update: 2018-12-03
Time of Update: 2018-12-03
這個程式主要運用了ICMPv4協議(回應要求)來測試本機到某伺服器的網路是否連通,因為其中用到了原始通訊端,所以運行該程式需要管理員權限。PS:本程式只支援一種輸入方式:./myping <hostname>,不支援其他參數。思路:1:根據hostname參數建立原始通訊端。2:每隔1秒鐘向伺服器發送一個ICMP回應要求。3:迴圈接收從伺服器返回的應答並處理其資料。上代碼:#include <signal.h>#include
Time of Update: 2018-12-03
我常常在想,為什麼我看別人的代碼是如此的彆扭?為什麼我看昨天自己寫的代碼也是如此醜陋?為什麼我又忍不住要重寫同樣功能的類呢?難道我是程式員中的孔乙己,一輩子就折騰字串類的四種寫法?我苦苦思索,於是就有了一個夢想:
Time of Update: 2018-12-03
1:C/C++洗髓錄作者:supermegaboy網址:http://blog.csdn.net/column/details/supermegaboy.html2:masefee透視C++作者:masefee網址:http://blog.csdn.net/column/details/masefeecpp.html3:設計模式C++實現作者:wuzhekai1985網址:http://blog.csdn.net/column/details/design.html4:C++各種內容都有作者:p
Time of Update: 2018-12-03
C++語言吸引如此之多的智力投入,以至於這個領域的優秀作品,包括重量級的軟體產品、程式庫以及書籍著作等,數不勝數。對於讀者來說,倘若限於經濟等客觀因素而必須做出折衷取捨,我推薦至少閱讀以下幾本書: 1. The C++ Programming Language (Special 3rd Edition) by Bjarne Stroustrup 2. The Design and Evolution of C++ by Bjarne