Time of Update: 2018-12-05
本文介紹如何使用Def檔案製作DLL。 模組定義 (.def) 檔案是包含一個或多個描述 DLL 各種屬性的 Module 語句的文字檔。如果不使用 __declspec(dllexport) 關鍵字匯出 DLL 的函數,則 DLL 需要 .def 檔案。.def 檔案必須至少包含下列模組定義語句:檔案中的第一個語句必須是 LIBRARY 語句。此語句將 .def 檔案標識為屬於 DLL。LIBRARY 語句的後面是 DLL 的名稱。連結器將此名稱放到 DLL
Time of Update: 2018-12-05
兩種方法對於你的程式調用動態庫時沒有任何區別,只是你在編程時,步驟是不一樣的。顯式調用麻煩了點,但可以沒有相應的lib庫;隱式調用,使用起來比較簡單,有函數的聲明(標頭檔.h)就可以了,但必須有lib庫。在VC中兩種方式的具體方法:一、動態庫的隱示調用:在 VC 工程中直接連結靜態輸入庫XXX.lib,然後即可像調用其它源檔案中的函數一樣調用DLL中的函數了。二、動態庫的顯式調用:顯式調用動態庫步驟:1、建立一個函數指標,其指標資料類型要與調用的 DLL 引出函數相吻合。2、通過 Win32
Time of Update: 2018-12-05
本文定義了一個宏來實現使用new代替realloc的操作,代碼如下:#include <iostream> #include <malloc.h> using namespace std;// p - 記憶體指標 // n - 申請記憶體數量 // T - 申請記憶體類型 #define RENEW(p, n, T)/ {/ T* pNew = new T[n];/ memcpy(pNew, p, _msize(p));/ delete[] p;
Time of Update: 2018-12-05
問題描述: 用一百塊錢買一百隻雞,公雞5塊錢一隻,母雞3塊錢一隻,小雞1塊錢3隻。問一共可以出現多少公雞、母雞、小雞的組合代碼實現:#include<stdio.h>int main(){ int x,y,z,j=0; printf("Folleing are possible plans to buy 100 fowls with 100 Yuan./n"); for(x=0;x<=20;x++) /*外層迴圈控制雞翁數*/ for(y=0
Time of Update: 2018-12-05
#include <iostream>using namespace std;class A{public:A(){cout<<"A Create!"<<endl;}~A(){cout<<"delete A!"<<endl;}virtual void fun1(){cout<<"A fun1()"<<endl;}void fun2(){cout<<"A fun2()"<<endl;fun1
Time of Update: 2018-12-05
在日常工作中經常遇到在一個訊息中捕獲其它訊息,比如當使用者按下滑鼠左鍵時,還想捕獲滑鼠移動的訊息。這個該怎麼處理呢?其實只需要在OnLButtonDown()中使用::GetMessage(&msg, NULL, 0, 0);來不停的截取系統訊息,並根據msg的訊息碼來處理你想截獲的訊息即可。在下面這段代碼中,當使用者按下滑鼠左鍵時在OnLButonDown()中將截獲所有的系統訊息,知道收到LButtonUp訊息。void
Time of Update: 2018-12-05
PCATTCP是一款不錯的測試區域網路網路速度的軟體,下面介紹下使用方法:1. 伺服器端 在伺服器端運行如下命令: C:/>pcattcp –r 執行後,提示如下: PCAUSA Test TCP Utility V2.01.01.08 TCP Receive Test Local Host : WWW-B722D776BC1 *****
Time of Update: 2018-12-05
不知你是否用過這樣的程式,他們本身並沒有解壓縮的功能,而是調用DOS程式PKZIP完成ZIP包的解壓縮。但是在程式運行時又沒有DOS控制台的視窗出現而且一切本應該在DOS下顯示的資訊都出現在了那個安裝程式的一個文字框裡。這種設計既美觀又可以防止少數眼疾手快的使用者提前關了你的DOS視窗。 現在就來討論一下,如何用匿名管道技術實現這個功能。 管道技術由來已久,相信不少人對DOS命令裡的管道技術最為熟悉。當我們type一個檔案的時候如果想讓他分頁現實可以輸入C:/>type
Time of Update: 2018-12-05
伺服器端:#include <Winsock2.h>#include <stdio.h>void InitSocket(){ WORD wVersionRequested; WSADATA wsaData; int err; wVersionRequested = MAKEWORD( 2, 2 ); err = WSAStartup( wVersionRequested, &wsaData ); if ( err != 0 ) { /* Tell the
Time of Update: 2018-12-05
在使用如下方式使用GetDlgItem()時,出現返回NULL的情況:(該對話方塊的ID為IDD_SIMP_ARROW_PROPERTY)CWnd* pBox= GetDlgItem(IDC_SIMP_ARROW_STYLE);原因:發現在工程一的Resource.h檔案中IDD_SIMP_ARROW_PROPERTY定義如下:#define IDD_SIMP_ARROW_PROPERTY
Time of Update: 2018-12-05
本文介紹一種判斷3D中N個點共線的方法。演算法基本思想是:以第一個點和最後一個點的向量為基準向量,分別計算中間N-2個點到該向量中的距離,如果該距離中的最大值小於某一給定的閾值則這些點共線,否則不共線。下面的代碼給出了求N-2個點到基向量的最大距離,根據這個值與給定的閾值比較判斷點是否共線。注意:代碼中沒有考慮特出情況,比如首末點重合的情況等,項目中使用時需要加以考慮。 float Distance(point3f* P, int n){int i;point3f* W = new
Time of Update: 2018-12-05
今天配置Apache是遇到80連接埠被佔用的情況,可又不知道那個程式佔用了該連接埠,下面介紹一下解決方案:1. 首先使用netstat命令查看佔用80連接埠的進程 使用cmd進入dos環境,然後輸入命令:netstat -ano,會顯示所有進程使用連接埠的情況,找到佔用80連接埠的進程,並記錄其PID(進程ID)2. 使用“工作管理員”查看PID對應的進程
Time of Update: 2018-12-05
#include <iostream>using namespace std;void fun(char** p, int num){ for (int i = 0; i < num; i++) { char* pTemp = p[i]; cout<<p[i]<<endl; }}void main(void){ char* aaa[] = {"a11", "b11", "c11"}; fun(aaa, 3);
Time of Update: 2018-12-05
程式在windowsXP和Windows7 32系統下啟動並執行好好的,今天裝了一個windows7 64位系統(說明,程式本身還是32位開發的),運行時出現“0xC015000F 正在被停用的啟用上下文不是最近啟用的”這個錯誤,找了好長時間才解決,下面總結如下: 網上提到較多的方法是在調用CWinApp::InitInstance();介面後面使用afxAmbientActCtx =
Time of Update: 2018-12-05
項目中遇到使用Openssl驗證憑證鏈結的問題,在網上找了很長時間,發現這方面的資料很少,通過多方努力,總算實現了準系統,為了給大家提供一下參考,本人實現了一個驗證憑證鏈結的類,以供參考,由於本人也是剛剛接觸Openssl,如果有不正確的地方,請大家多多指導/************************************************************************//* VerifyDCChain.h
Time of Update: 2018-12-05
本文討論2D中線段和圓的相交性檢測,檢測的方法也適用於3D中線段和球之間的相交性測試,這是因為可以在包含線段和球心的平面進行檢測,從而將3D問題轉化為2D問題。(如果線段包含在穿過球心的直線上,那麼這個平面就不是唯一的,但這並不是問題,在這種情況下我們能使用任意包含射線和球心的平面來進行計算。) 如用圓心c和半徑r來定義球,線段的定義為:p(t)=p0+td,這裡d為單位向量,t從0變化到l,l為線段長度。所要求的是交點處t的值: t = a - f;
Time of Update: 2018-12-05
本文給出一種判斷同一平面內兩線段相交的判定方法。如: 如果兩線段相交,則兩線段必然相互跨立對方。 若P1P2跨立Q1Q2 ,則向量(P1 - Q1)和( P2 - Q1)位於向量(Q2 - Q1)的兩側, 即(( P1 - Q1) × ( Q2 - Q1 )) *(( P2 - Q1) × ( Q2 - Q1 )) < 0。 上式可改寫成((P1 - Q1) × ( Q2 - Q1 )) * (( Q2 - Q1) × (P2 - Q1 )) >
Time of Update: 2018-12-05
這兩個函數主要實現的功能是排列組合方面的操作,以前對於序列的全排列演算法遞迴的、非遞迴的都看過幾個,最近看《STL源碼剖析》,感覺SGI STL裡面的實現也頗為巧妙。 首先說下next_permutation,該函數求當前序列的下一個組合,演算法很巧妙,具體思想是:從最尾端開始尋找兩個相鄰的元素,令第一個元素是i,第二個元素是ii,且*i <
Time of Update: 2018-12-05
給定平面上一點p(x0,y0),判斷該點是否在三角形ABC中,三角形頂點座標分別為A(xa,xb),B(xb,yb),C(xc,yc)。可以使用面積法來判斷,方法如下:其中S(A,B,C)表示三角形ABC的面積。 1、 若abs( S(A,B,C) ) = abs( S(P,B,C) ) + abs( S(A,P,C) ) + abs( S(A,B,P) ) ,則P在三角形ABC的內部或邊上;如果還有abs( S(P,B,C) )、abs( S(A,P,C) ) 和abs(
Time of Update: 2018-12-05
在vs2008下,當在一個結構體中有vector類型的成員時,如果在定義了一個該結構體的變數,並使用memset函數對其初始化,在debug版本下並不會有問題。但換成release版本後,程式運行會產生異常,並報如下資訊:Microsoft Visual Studio C Runtime Library has detected a fatal error in STLtest.exe.Press Break to debug the program or Continue to