Time of Update: 2018-12-07
在C#中如果我們需要調用API等COM類型的函數,但是很多時候系統裡面每月DLL給我直接調用,有Tlb檔案還好,VS可以直接引用,但是很多情況下引用是不成功的,要想得到一個C#自動封裝好的COM的Interop程式集,我們可以這樣做: 1.用MIDL.exe :使用方式為MIDL.exe IDL檔案名稱。 此工具將產生一個Tlb檔案,如果該檔案直接可以用VS引用產生Interop程式集則不需要下面的步驟。2.用TlbImp.exe :使用方式為 TlbImp.exe Tlb檔案名稱。
Time of Update: 2018-12-07
在基礎筆試或面試中,這個問題經常被問到。總結來說,有三種常用的用法:函數內:這是我最先接觸到的一種用法,還記得大一的時候,王尋雨老師(本部的一個老師,名字可能寫錯)給我們講的,至今還記憶猶新。該用法就是在函數內定義的static變數,在所有的函數調用中都是用是同一個變數,常用來記錄函數調用的次數等統計資訊。類成員變數和成員函數:這個無需多說,屬於類的,而不屬於對象的變數和函數需要加上static關鍵字。檔案內:一個檔案的static全域變數主要是為了使得該變數不能被其他檔案用extern關鍵字引
Time of Update: 2018-12-07
DateTime ts1 = DateTime.Parse("2008-6-1");DateTime ts2 = DateTime.Parse("2008-6-5");TimeSpan ts = ts1.Subtract(ts2).Duration();//Response.Write(ts.Days.ToString()+"天"+ ts.Hours.ToString()+"小時"// + ts.Minutes.ToString()+"分鐘"+
Time of Update: 2018-12-07
Enum為枚舉提供基類,其基礎類型可以是除 Char 外的任何整型。如果沒有顯式聲明基礎類型,則使用 Int32。程式設計語言通常提供文法來聲明由一組已命名的常數和它們的值組成的枚舉。注意:枚舉類型的基底類型是除 Char 外的任何整型,所以枚舉類型的值是整型值。Enum 提供一些實用的靜態方法:(1)比較枚舉類的執行個體的方法(2)將執行個體的值轉換為其字串表示形式的方法(3)將數位字串表示形式轉換為此類的執行個體的方法(4)建立指定枚舉和值的執行個體的方法。舉例:enum Colors {
Time of Update: 2018-12-07
很多人都有過使用網路螞蟻或網路快車軟體下載互連網檔案的經曆,這些軟體的使用可以大大加速互連網上檔案的傳輸速度,減少檔案傳輸的時間。這些軟體為什麼有如此大的魔力呢?其主要原因是這些軟體都採用了多線程下載和斷點續傳技術。如果我們自己來編寫一個類似這樣的程式,也能夠快速的在互連網上下載檔案,那一定是非常愉快的事情。下面我就講一講如何利用C#語言編寫一個支援多線程下載檔案的程式,你會看到利用C#語言編寫網路應程式是多麼的容易,從中也能體會到C#語言中強大的網路功能。首先介紹一下HTTP協議,HTTP亦即
Time of Update: 2018-12-07
我們在寫灌水機器人、抓資源機器人和Web網遊協助工具輔助的時候第一步要實現的就是使用者登入。那麼怎麼用C#來類比一個使用者的登入拉?要實現使用者的登入,那麼首先就必須要瞭解一般網站中是怎麼判斷使用者是否登入的。HTTP協議是一個不需連線的協議,也就是說這次對話的內容和狀態與上次的無關,為了實現和使用者的持久互動,網站與瀏覽器之前在剛建立會話時將在服務
Time of Update: 2018-12-07
我們在寫灌水機器人、抓資源機器人和Web網遊協助工具輔助的時候第一步要實現的就是使用者登入。那麼怎麼用C#來類比一個使用者的登入拉?要實現使用者的登入,那麼首先就必須要瞭解一般網站中是怎麼判斷使用者是否登入的。HTTP協議是一個不需連線的協議,也就是說這次對話的內容和狀態與上次的無關,為了實現和使用者的持久互動,網站與瀏覽器之前在剛建立會話時將在伺服器記憶體中建立一個Session,該Session標識了該使用者(瀏覽器),每一個Session都有一個唯一的ID,第一次建立會話時伺服器將產生的這
Time of Update: 2018-12-07
我在上一篇文章中已經講解了一般網站的登入原來和C#的登入實現,很多人問到對於使用了驗證碼的網站該怎麼辦,這裡我就講講驗證碼的原理和對應的登入方法。驗證碼的由來幾年前,大部分網站、論壇之類的是沒有驗證碼的,因為對於一般使用者來說驗證碼只是增加了使用者的操作,降低了使用者的體驗。但是後來各種灌水機器人、投 票機器人、惡意註冊機器人層出不窮,大大增加了網站的負擔同時也給網站資料庫帶來了大量的垃圾資料。為了防止各種機器人程式的破壞,於是程式員想出了只有
Time of Update: 2018-12-07
今天被成員函數指標害了!平時我們當一個類的成員中有一個其他類型的成員指標時,為了減少標頭檔依賴,經常使用聲明方式class Session;而不是用#include “Session.h”而,如果不小心你用了Session的函數成員指標,如void (Session::*handler)(Packet& recvPacket);不幸的是,在運行時,和編譯時間的,sizeof將不一致,從我目前來看,編譯時間佔用了16個位元組,而,作為指標在
Time of Update: 2018-12-07
臨時變數不能作為非const引用參數,不是因為他是常量,而是因為c++編譯器的一個關於語義的限制。如果一個參數是以非const引用傳入,c++編譯器就有理由認為程式員會在函數中修改這個值,並且這個被修改的引用在函數返回後要發揮作用。但如果你把一個臨時變數當作非const引用參數傳進來,由於臨時變數的特殊性,程式員並不能操作臨時變數,而且臨時變數隨時可能被釋放掉,所以,一般說來,修改一個臨時變數是毫無意義的,據此,c++編譯器加入了臨時變數不能作為非const引用的這個語義限制,意在限制這個非常規
Time of Update: 2018-12-07
經常在AS3裡面收穫到NaN,但一直認為C++是弱類型的,只管記憶體,再加上平時都跟uint32打交道比較多,才會在今天踩到陷阱。碰到一個值為-nan(0x400000)造成的crash.google了一下收穫到:http://stackoverflow.com/questions/570669/checking-if-a-double-or-float-is-nan-in-cfor a float f, f != f will be true only if f is
Time of Update: 2018-12-07
當用戶端與Socks5Proxy 伺服器串連上並進行握手時,用戶端將會發送以下格式的握手報文:版本號碼(1位元組) | 認證方法數(1位元組) | 認證方法序列(1-255個位元組長度)比如報文(假如為V5版本):0x05 0x01 0x00 則表示用戶端只支援一種(0x1)認證方法0x00 (無驗證需求)0x05 0x01 0x02 則表示用戶端只支援一種(0x01)認證方法0x02(使用者名稱/密碼 驗證)0x05 0x02 0x00 0x02
Time of Update: 2018-12-07
時間複雜度O(n) <!--Code highlighting produced by Actipro CodeHighlighter
Time of Update: 2018-12-07
一 、const基礎 如果const關鍵字不涉及到指標,我們很好理解,下面是涉及到指標的情況: int b = 500; const int* a = &b; [1] int const *a = &b; [2] int* const a = &b; [3] const int* const a = &b; [4] 如果你能區分出上述四種情況,那麼,恭喜你,你已經邁出了可喜的一步。不知道,也沒關係,我們可以參考《Effective
Time of Update: 2018-12-07
在c#中沒有BigInteger這個類,有時候感覺很不方便,其實在C#中是可以調用java中的的某些類的,調用的方法如下:首先添加引用vjslib(這其實是J#的類),然後我們就可以通過使用BigInteger中的類了,下面是我寫的一小段程式,實現兩個大數的相乘。using System;using System.Collections.Generic;using System.Text;using java.math;namespace BigIntegerTester{
Time of Update: 2018-12-07
#include <iostream>#include <string>#include <stack>using namespace std;string Add(string Str1, string Str2){ // 運算元1 stack<int>S1; // 運算元2 stack<int>S2; // 結果 stack<int>S3; int i, r, last = 0; for(i=0;
Time of Update: 2018-12-07
linux下線程採用pthread.h,採用的是c語言的風格,為了更加物件導向話,我在寫程式的時候給封裝成了一個類,用到了一些內部的庫,但是去掉內部的庫,也無傷大雅。懶得去改程式了,所以沒有去處某些內部的標頭檔和函數的調用。thread.h/** * @file thread.h * @version * @date 2011/5/12 * @author wangyou@baidu.com * @brief 對線程進行了簡單的封裝(java風格)**/#pragma once#include
Time of Update: 2018-12-07
目前已經有C#版得飛信sdk,功能很強大,佔用得資源也很多。由於現在開源得SDK是通過反編譯飛信而編寫的,所以其所佔用得記憶體在30M左右,檔案也比較大,在程式中使用很不方便,尤其是在asp.net中。
Time of Update: 2018-12-07
public void BubbleSort(int[] R) { int i,j,temp; //交換標誌 bool exchange; //最多做R.Length-1趟排序 for(i=0; i<R.Length; i++) { //本趟排序開始前,交換標誌應為假 exchange=false; for(j=R.Length-2; j>=i; j--) { //交換條件 if(R[j+1]<R[j]) {
Time of Update: 2018-12-07
Measure String Size In Pixels (C #) Posted by Shahar Sometimes we need to know the width of a given string in pixels, do you know how to compute it? Before writing some long code, please notice that the. NET framework class library provides such a