나는 최근에 콘솔 프로그램을 작성했는데, 프로그램이 작성된 후 데이터베이스에서 데이터를 내보내는 것(테이블 이름 지정, 테이블의 필드 이름 지정)이 매우 간단합니다. 테스트 중에 사용자가 데이터를 내보낼 때 데이터베이스 테이블을 생성한 후 다른 테이블의 데이터를 내보내려면 프로그램을 다시 실행해야 하는데 이는 확실히 좋지 않은 것으로 나타났습니다. 그러나 프로그램에서 루프나 goto 문을 사용하여 구현하면 콘솔에 텍스트가 너무 많아 보기에 좋지 않습니다. 그래서 마침내 데이터베이스 테이블 가져오기를 마친 후 콘솔이 자동으로 화면을 지우고 다음 데이터베이스 테이블을 내보낼 수 있는지 생각해 보았습니다. 그러다가 오랫동안 온라인으로 검색했지만 만족스러운 답변을 찾을 수 없었습니다. "화면 지우기"의 온라인 방법은 n 캐리지 리턴을 입력하는 것입니다. 갑자기 C++로 화면 지우기 DLL을 작성하려고 생각했는데 결과가 꽤 만족스러웠습니다. 아래에서는 콘솔에서 화면을 지우는 C# 언어를 단계별로 구현하겠습니다.
(1) VS2005를 열고 CLS라는 새로운 C++ 클래스 라이브러리 프로젝트를 만듭니다.
(2) CLS.h 파일을 열고 클래스 이름을 "CLS"로 바꿉니다.
(3) CLS.cpp 파일을 열고 "windows.h" 파일을 삽입합니다.
// 메인 DLL 파일입니다.
#include "stdafx.h"
#include "windows.h"
#include "CLS.h"
(4) CLS 클래스에 정적 메서드 추가(액세스 속성은 공개)
공개 참조 클래스 CLS
{
공공의:
정적 무효 cls()
{
system("cls");
}
};
(5) 마지막으로 전체 프로젝트를 컴파일하고 CLS/debug/ 폴더에 있는 CLS.dll을 C# 프로젝트에 도입합니다.
(6) 화면을 지워야 할 때마다 CLS.cls()를 호출하면 됩니다. 일시정지 등의 기능도 위와 같은 방법으로 구현할 수 있습니다.
이것이 가능한 이유는 무엇입니까? .Net FrameWork를 공부해본 사람이라면 잘 이해했을 것이다. C++, C, VB, C# 언어이든 결국 IL(Intermediate Language) 언어가 생성되기 때문에 위의 언어로 어떤 프로그램을 작성하더라도 마찬가지다. 상호 운용이 가능합니다.
위에 쓴 내용이 잘못된 경우 알려주세요! 이제 막 블로그를 시작했는데, 배울 점이 정말 많아요.
http://www.cnblogs.com/blueskybcl/archive/2010/04/24/1719171.html