最近寫了個控制台程序,這個程序功能很簡單,就是從數據庫中將(指定表名,指定表中字段名)數據導出到WORD文件中,程序寫完了,在測試的時候發現當用戶在導出一個數據庫表後,如果還想導出另一張表中的數據,就要重新運行一遍程序,這樣顯然不好。但是如果在程序中用循環或用goto語句實現的話,控制台裡的文字太多,不好看。所以最後想到能不能當我們導完一個數據庫表後,讓控制台自動清屏,進行下一個數據庫表的導出操作。然後就上網上搜了好長時間,沒找到一個滿意的答案,網上的“清屏”辦法是輸出n個回車,我覺得這根本就不是清屏。忽然想到了用C++寫一個清屏的DLL,結果還算滿意。下面我們一步一步的來實現C#語言在控制台中清屏:
(1)打開VS2005,新建一個C++類庫項目,叫CLS;
(2)打開CLS.h文件,將類名重命名為"CLS";
(3)打開CLS.cpp文件,在裡面引入“windows.h”文件;
// 這是主 DLL 文件。
#include "stdafx.h"
#include "windows.h"
#include "CLS.h"
(4)在CLS類中添加一個個靜態方法(訪問屬性為public)
public ref class CLS
{
public :
static void cls()
{
system("cls");
}
};
(5)最後編譯整個工程,將CLS/debug/文件夾下的CLS.dll引入到C#項目工程中;
(6)在需要清屏的地方,調用CLS.cls()即可實現。也可以實現暫停(pause)等功能,方法同上。
這樣為什麼可以呢?只要學過.Net FrameWork都應該很明白,因為不管是C++,C,VB還是C#語言,最終都會生成IL(Intermediate Language(中間語言))語言,所以不管用上面哪一種語言寫的程序都可以互用的。