지금 이야기하고 싶은 것은 라이브러리(라이브러리), C#으로 DLL 파일을 만드는 방법을 배우는 것입니다. DLL이라고 하면 모두가 알아야 하고, WINDOWS의 대표적인 대표자이기도 합니다. 모두의 공격 대상입니다. 하하, 어쨌든 명령줄을 사용하여 C# 프로그램을 DLL로 컴파일하는 방법과 이를 클라이언트에서 사용하는 방법부터 시작하겠습니다. >
이 예에는 두 개의 파일이 포함되어 있습니다. 하나는 숫자의 계승을 계산하는 데 사용되는 Factorial.cs이고 다른 하나는 전달된 문자열 매개변수의 숫자 수를 계산하는 데 사용되는 DigitCounter.cs입니다.
명령줄 모드에서 다음과 같이 라이브러리를 생성할 수 있습니다.
csc /target:library /out:Functions.dll Factorial.cs DigitCounter.cs
각 매개변수에 대해 이야기해 보겠습니다. :
/target:library: 출력이 EXE 실행 파일이 아닌 DLL 라이브러리임을 시스템에 나타냅니다.
/out:Functions.dll: 출력 DLL의 파일 이름을 지정합니다. 일반적으로 첫 번째 매개변수를 생략하면 기본 파일 이름은 첫 번째 파일의 파일 이름인
이 됩니다. , 이 라이브러리를 사용하는 파일을 클라이언트 파일 FunctionClient.cs라고 합니다. 생성 후 다음 언어 이름으로 컴파일합니다.
csc /out:FunctionTest.exe /R:Functions.DLL FunctionClient .cs
이 컴파일 문의 사용법에 대해 이야기해 보겠습니다.
/out:FunctionTest.exe: 출력 파일 이름이 FunctionTest.exe
/R:Functions임을 지적합니다. DLL: 인용할 파일 지정 라이브러리가 현재 디렉터리에 없으면 전체 경로를 지정해야 합니다.
000: // LibrariesFactorial.cs
002:
003: 네임스페이스 함수
004: {
005: 공용 클래스 Factorial int Calc(int i)
008: {
009: return((i <= 1) ? 1 : (i * Calc(i-1)))
010: }
011: }
012 : }
이것은 Factorial.cs 파일의 코드입니다. 003번 줄에서 네임스페이스는 네임스페이스를 의미합니다. M$에 따르면 클래스를 올바르게 로드하려면 .NET을 활성화해야 합니다. >
다음은 DigitCounter.cs 파일의 내용입니다:
000: // LibrariesDigitCounter.cs
001: using System;
003: 네임스페이스 함수
004: {005: 공용 클래스 DigitCount
006: {
007: public static int NumberOfDigits(string theString)
008: {
009: int count = 0; >010: for ( int i = 0; i < theString.Length; i++ )
011: {
012: if ( Char.IsDigit(theString[ i]) )
013: {
014: 개수++;
015: }
016: }
017:
018: 반환 개수
019: }
020: }
021: }
이 예제의 네임스페이스는 동일한 라이브러리에 있기 때문에 첫 번째 네임스페이스와 일치해야 합니다. NumberOfDigits 메서드는 매개변수의 숫자 수를 계산합니다.
세 번째 파일은 FunctionClient.cs입니다. 🎜>
우리는 일단 라이브러리가 생성되면 다른 클래스에서 사용할 수 있다는 것을 알고 있습니다. (말도 안되는 소리, 달리 어떻게 라이브러리라고 부를 수 있을까요?) 아래 C# 프로그램은 라이브러리의 클래스를 사용합니다.
000: // LibrariesFunctionClient.cs
002: using Functions;
003: class FunctionClient004: {
005 : public static void Main(string[] args)
007: Console.WriteLine("함수 클라이언트")
008:
009: if ( args.Length == 0 )
010: {
011: Console.WriteLine("사용법: FunctionTest ... ")
012: return
013: }
014:
015: for; ( int i = 0; i 016: {
017: int num = Int32.Parse(args[i])
018: Console.WriteLine(
019: "문자열 [{0}]의 자릿수는 [{1}]입니다.",
020: args[i],
021: DigitCount.NumberOfDigits(args[i])); >022: Console.WriteLine(
023: "[{0}]의 계승은 [{1}]입니다.",
024: num,
025: Factorial.Calc(num) )
026: }
027: }
028: }
002행에서 Functions를 사용하면 Functions.DLL 클래스에 대한 참조를 지정합니다.
다음 명령을 입력하면 명령줄에서 출력을 볼 수 있습니다:
FunctionTest 3 5 10
출력:
[3]의 계승은 [6]
문자열 [5]의 자릿수는 [1]입니다.
다음의 계승 [5]는 [120]
문자열 [10]의 자릿수는 [2]입니다.
[10]의 계승은 [3628800 ]
참고: 이 .EXE 파일을 실행하면 참조하는 DLL 파일이 현재 디렉터리, 하위 디렉터리 또는 CORPATH 환경 변수에 있을 수 있습니다. CORPATH 환경 변수는 .NET 환경에 있습니다. 클래스 경로는 시스템이 클래스를 찾도록 안내하는 데 사용됩니다. 직설적으로 말하면 Java에서는 CLASSPATH입니다.