Tlbimp.exe(형식 라이브러리 가져오기)Tlbimp.exe (Type Library Importer)

형식 라이브러리 가져오기 도구는 COM 형식 라이브러리에 있는 형식 정의를 공용 언어 런타임 어셈블리의 동등한 정의로 변환합니다.The Type Library Importer converts the type definitions found within a COM type library into equivalent definitions in a common language runtime assembly. Tlbimp.exe의 출력은 원본 형식 라이브러리에 정의된 형식의 런타임 메타데이터를 포함하는 이진 파일(어셈블리)입니다.The output of Tlbimp.exe is a binary file (an assembly) that contains runtime metadata for the types defined within the original type library. Ildasm.exe와 같은 도구를 사용하여 이 파일을 검토할 수 있습니다.You can examine this file with tools such as Ildasm.exe.

이 도구는 자동으로 Visual Studio와 함께 설치됩니다.This tool is automatically installed with Visual Studio. 이 도구를 실행하려면 Visual Studio용 개발자 명령 프롬프트(또는 Windows 7의 Visual Studio 명령 프롬프트)를 사용합니다.To run the tool, use the Developer Command Prompt for Visual Studio (or the Visual Studio Command Prompt in Windows 7). 자세한 내용은 명령 프롬프트를 참조하세요.For more information, see Command Prompts.

명령 프롬프트에 다음을 입력합니다.At the command prompt, type the following:

구문Syntax

tlbimp tlbFile [options]  

매개 변수Parameters

인수Argument 설명Description
tlbFiletlbFile COM 형식 라이브러리를 포함하는 파일의 이름입니다.The name of any file that contains a COM type library.
옵션Option 설명Description
/asmversion: versionnumber/asmversion: versionnumber 만들 어셈블리의 버전 번호를 지정합니다.Specifies the version number of the assembly to produce. versionnumbermajor.minor.build.revision 형식으로 지정합니다.Specify versionnumber in the format major.minor.build.revision.
/company: companyinformation/company: companyinformation 출력 어셈블리에 회사 정보를 추가합니다.Adds company information to the output assembly.
/copyright: copyrightinformation/copyright: copyrightinformation 출력 어셈블리에 저작권 정보를 추가합니다.Adds copyright information to the output assembly. 이 정보는 어셈블리에 대한 파일 속성 대화 상자에서 볼 수 있습니다.This information can be viewed in the File Properties dialog box for the assembly.
T:System.Reflection.AssemblyDelaySignAttribute/delaysign Tlbimp.exe에서 지연 서명을 사용하여 강력한 이름의 결과 어셈블리에 서명하도록 지정합니다.Specifies to Tlbimp.exe to sign the resulting assembly with a strong name using delayed signing. 이 옵션은 /keycontainer: , /keyfile: 또는 /publickey: 옵션과 함께 지정해야 합니다.You must specify this option with either the /keycontainer:, /keyfile:, or /publickey: option. 지연 서명 프로세스에 대한 자세한 내용은 어셈블리 서명 연기를 참조하세요.For more information on the delayed signing process, see Delay Signing an Assembly.
/help/help 이 도구의 명령 구문 및 옵션을 표시합니다.Displays command syntax and options for the tool.
/keycontainer: containername/keycontainer: containername containername에서 지정된 키 컨테이너에 있는 퍼블릭/프라이빗 키 쌍을 사용하여 강력한 이름으로 결과 어셈블리를 서명합니다.Signs the resulting assembly with a strong name using the public/private key pair found in the key container specified by containername.
/keyfile: filename/keyfile: filename filename에 있는 게시자의 공식 퍼블릭/프라이빗 키 쌍을 사용하여 강력한 이름으로 결과 어셈블리를 서명합니다.Signs the resulting assembly with a strong name using the publisher's official public/private key pair found in filename.
/machine: machinetype/machine: machinetype 지정된 컴퓨터 종류(마이크로프로세서)를 대상으로 하는 어셈블리를 만듭니다.Creates an assembly that targets the specified machine type (microprocessor). 지원되는 컴퓨터 종류: x86, x64, Itanium 및 Agnostic.Supported machine types: x86, x64, Itanium, and Agnostic.
/namespace: namespace/namespace: namespace 어셈블리를 만들 네임스페이스를 지정합니다.Specifies the namespace in which to produce the assembly.
/noclassmembers/noclassmembers Tlbimp.exe에서 클래스에 멤버를 추가하지 못하도록 합니다.Prevents Tlbimp.exe from adding members to classes. 이렇게 하면 TypeLoadException이 발생하지 않습니다.This avoids a potential TypeLoadException.
/nologo/nologo Microsoft 시작 배너를 표시하지 않습니다.Suppresses the Microsoft startup banner display.
/out: filename/out: filename 메타데이터 정의를 기록할 출력 파일의 이름, 어셈블리 및 네임스페이스를 지정합니다.Specifies the name of the output file, assembly, and namespace in which to write the metadata definitions. 형식 라이브러리에서 어셈블리의 네임스페이스를 명시적으로 제어하는 IDL(Interface Definition Language) 사용자 지정 특성을 지정하면 /out 옵션은 어셈블리의 네임스페이스에 영향을 주지 않습니다.The /out option has no effect on the assembly's namespace if the type library specifies the Interface Definition Language (IDL) custom attribute that explicitly controls the assembly's namespace. 이 옵션을 지정하지 않으면 Tlbimp.exe는 입력 파일 내에 정의한 실제 형식 라이브러리와 이름이 같은 파일에 메타데이터를 기록하고 이 파일의 확장명을 .dll로 지정합니다.If you do not specify this option, Tlbimp.exe writes the metadata to a file with the same name as the actual type library defined within the input file and assigns it a .dll extension. 출력 파일과 입력 파일의 이름이 같은 경우 형식 라이브러리를 덮어쓰지 않도록 오류가 생성됩니다.If the output file is the same name as the input file, the tool generates an error to prevent overwriting the type library.
/primary/primary 지정된 형식 라이브러리에 대한 주 interop 어셈블리를 만듭니다.Produces a primary interop assembly for the specified type library. 어셈블리를 만든 형식 라이브러리의 게시자를 나타내는 정보가 어셈블리에 추가됩니다.Information is added to the assembly indicating that the publisher of the type library produced the assembly. 주 interop 어셈블리를 지정하면 게시자의 어셈블리를 Tlbimp.exe를 사용하여 형식 라이브러리에서 만든 다른 어셈블리와 구별할 수 있습니다.By specifying a primary interop assembly, you differentiate a publisher's assembly from any other assemblies that are created from the type library using Tlbimp.exe. Tlbimp.exe를 사용하여 가져오는 형식 라이브러리의 게시자인 경우 /primary 옵션만 사용해야 합니다.You should only use the /primary option if you are the publisher of the type library that you are importing with Tlbimp.exe. 강력한 이름을 사용하여 주 interop 어셈블리를 서명해야 합니다.Note that you must sign a primary interop assembly with a strong name. 자세한 내용은 주 Interop 어셈블리를 참조하세요.For more information, see Primary Interop Assemblies.
/product: productinformation/product: productinformation 출력 어셈블리에 제품 정보를 추가합니다.Adds product information to the output assembly. 이 정보는 어셈블리에 대한 파일 속성 대화 상자에서 볼 수 있습니다.This information can be viewed in the File Properties dialog box for the assembly.
/productversion: productversioninformation/productversion: productversioninformation 출력 어셈블리에 제품 버전 정보를 추가합니다.Adds product version information to the output assembly. 형식 제한은 없습니다.There are no format restrictions. 이 정보는 어셈블리에 대한 파일 속성 대화 상자에서 볼 수 있습니다.This information can be viewed in the File Properties dialog box for the assembly.
/publickey: filename/publickey: filename 결과 어셈블리에 서명하는 데 사용할 공개 키를 포함하는 파일을 지정합니다.Specifies the file containing the public key to use to sign the resulting assembly. /publickey: 대신 /keyfile: 또는 /keycontainer: 옵션을 지정하면 Tlbimp.exe는 /keyfile: 또는 /keycontainer: 와 함께 제공된 퍼블릭/프라이빗 키 쌍에서 퍼블릭 키를 생성합니다.If you specify the /keyfile: or /keycontainer: option instead of /publickey:, Tlbimp.exe generates the public key from the public/private key pair supplied with /keyfile: or /keycontainer:. /publickey: 옵션은 테스트 키 및 서명 연기 시나리오를 지원합니다.The /publickey: option supports test key and delay signing scenarios. 파일은 Sn.exe에 의해 생성된 형식으로 되어 있습니다.The file is in the format generated by Sn.exe. 자세한 내용은 Sn.exe(강력한 이름 도구)에서 Sn.exe의 -p 옵션을 참조하세요.For more information, see the -p option of Sn.exe in Strong Name Tool (Sn.exe).
/reference: filename/reference: filename 현재 형식 라이브러리 외부에 정의된 형식에 대한 참조를 확인하는 데 사용할 어셈블리 파일을 지정합니다.Specifies the assembly file to use to resolve references to types defined outside the current type library. /reference 옵션을 지정하지 않으면 Tlbimp.exe는 가져오는 형식 라이브러리에서 참조하는 외부 형식 라이브러리를 재귀적으로 가져옵니다. 이 작업은 자동으로 수행됩니다.If you do not specify the /reference option, Tlbimp.exe automatically recursively imports any external type library that the type library being imported references. /reference 옵션을 지정하면 Tlbimp.exe는 다른 형식 라이브러리를 가져오기 전에 참조된 어셈블리에서 외부 형식을 확인하려고 합니다.If you specify the /reference option, the tool attempts to resolve external types in the referenced assemblies before it imports other type libraries.
/silence: warningnumber/silence: warningnumber 지정한 경고를 표시하지 않습니다.Suppresses the display of the specified warning. 이 옵션은 /silent와 함께 사용할 수 없습니다.This option cannot be used with /silent.
/silent/silent 성공 메시지를 표시하지 않습니다.Suppresses the display of success messages. 이 옵션은 /silence와 함께 사용할 수 없습니다.This option cannot be used with /silence.
/strictref/strictref 도구에서 현재 어셈블리, /reference 옵션으로 지정된 어셈블리 또는 등록된 PIA(주 Interop 어셈블리) 내의 모든 참조를 확인할 수 없는 경우 형식 라이브러리를 가져오지 않습니다.Does not import a type library if the tool cannot resolve all references within the current assembly, the assemblies specified with the /reference option, or registered primary interop assemblies (PIAs).
/strictref:nopia/strictref:nopia /strictref와 같지만 PIA를 무시합니다.Same as /strictref, but ignores PIAs.
/sysarray/sysarray COM 스타일 SafeArray를 관리되는 Array 형식으로 가져오는 도구를 지정합니다.Specifies to the tool to import a COM style SafeArray as a managed Array type.
/tlbreference: filename/tlbreference: filename 레지스트리를 조회하지 않고 형식 라이브러리 참조를 확인하는 데 사용할 형식 라이브러리 파일을 지정합니다.Specifies the type library file to use to resolve type library references without consulting the registry.

이 옵션을 사용하면 이전의 형식 라이브러리 형식 중 일부가 로드되지 않습니다.Note that this option will not load some older type library formats. 그러나 레지스트리나 현재 디렉터리를 통해 암시적으로 이전의 형식 라이브러리 형식을 로드할 수 있습니다.However, you can still load older type library formats implicitly through the registry or current directory.
/trademark: trademarkinformation/trademark: trademarkinformation 출력 어셈블리에 상표 정보를 추가합니다.Adds trademark information to the output assembly. 이 정보는 어셈블리에 대한 파일 속성 대화 상자에서 볼 수 있습니다.This information can be viewed in the File Properties dialog box for the assembly.
/transform: transformname/transform: transformname transformname 매개 변수에 지정된 메타데이터를 변형합니다.Transforms metadata as specified by the transformname parameter.

transformname 매개 변수에 dispret를 지정하여 디스패치 전용 인터페이스(dispinterface)에 있는 메서드의 [out, retval] 매개 변수를 반환 값으로 변형합니다.Specify dispret for the transformname parameter to transform [out, retval] parameters of methods on dispatch-only interfaces (dispinterfaces) into return values.

이 옵션에 대한 자세한 내용은 이 항목 뒷부분의 예제를 참조하십시오.For more information about this option, see the examples later in this topic.
/unsafe/unsafe .NET Framework 보안 검사를 실행하지 않고 인터페이스를 만듭니다.Produces interfaces without .NET Framework security checks. 이런 식으로 노출된 메서드를 호출하면 보안상 위험할 수 있습니다.Calling a method that is exposed in this way might pose a security risk. 이러한 코드 노출의 위험에 대해 잘 모르면 이 옵션을 사용하지 않는 것이 좋습니다.You should not use this option unless you are aware of the risks of exposing such code.
/verbose/verbose 세부 정보 표시 모드를 지정합니다. 즉, 가져온 형식 라이브러리에 대한 추가 정보를 표시합니다.Specifies verbose mode; displays additional information about the imported type library.
/VariantBoolFieldToBool/VariantBoolFieldToBool 구조 내 VARIANT_BOOL 필드를 Boolean으로 변환합니다.Converts VARIANT_BOOL fields in structures to Boolean.
/?/? 이 도구의 명령 구문 및 옵션을 표시합니다.Displays command syntax and options for the tool.

참고

Tlbimp.exe의 명령줄 옵션은 대/소문자를 구분하지 않으며 순서에 관계없이 지정할 수 있습니다.The command-line options for Tlbimp.exe are case-insensitive and can be supplied in any order. 또한, 고유하게 식별할 수 있을 정도로만 옵션을 지정하면 됩니다.You only need to specify enough of the option to uniquely identify it. 따라서 /n/nologo와 같고, /ou: outfile.dll/out: outfile.dll과 같습니다.Therefore, /n is equivalent to /nologo and /ou: outfile.dll is equivalent to /out: outfile.dll.

설명Remarks

Tlbimp.exe는 한 번에 전체 형식 라이브러리 변환을 수행합니다.Tlbimp.exe performs conversions on an entire type library at one time. 이 도구를 사용하여 단일 형식 라이브러리 내에 정의된 형식의 하위 집합에 대한 형식 정보를 생성할 수는 없습니다.You cannot use the tool to generate type information for a subset of the types defined within a single type library.

어셈블리에 강력한 이름을 할당하는 것이 종종 유용하거나 필요합니다.It is often useful or necessary to be able to assign strong names to assemblies. 따라서 Tlbimp.exe는 강력한 이름의 어셈블리를 생성하는 데 필요한 정보를 제공하는 옵션을 포함합니다.Therefore, Tlbimp.exe includes options for supplying the information necessary to generate strongly named assemblies. /keyfile:/keycontainer: 옵션은 둘 다 강력한 이름으로 어셈블리를 서명합니다.Both the /keyfile: and /keycontainer: options sign assemblies with strong names. 그러므로 한 번에 한 옵션만 지정하면 됩니다.Therefore, it is logical to supply only one of these options at a time.

/reference 옵션을 여러 번 사용하여 여러 개의 참조 어셈블리를 지정할 수 있습니다.You can specify multiple reference assemblies by using the /reference option multiple times.

Tlbimp.exe가 어셈블리를 생성하는 방식으로 인해 어셈블리를 다른 mscorlib 버전으로 다시 대상 지정할 수 없습니다.Due to the way in which Tlbimp.exe generates assemblies, it is not possible to retarget an assembly to a different mscorlib version. 예를 들어 .NET Framework 2.0을 대상으로 하는 어셈블리를 생성하려는 경우 .NET Framework 2.0/3.0/3.5 SDK와 함께 제공되는 Tlbimp.exe를 사용해야 합니다.For example, if you desire to generate an assembly that targets .NET Framework 2.0, the Tlbimp.exe shipped with the .NET Framework 2.0/3.0/3.5 SDK must be used. .NET Framework 4.x를 대상으로 하려면 .NET Framework 4.x SDK와 함께 제공되는 Tlbimp.exe를 사용해야 합니다.In order to target .NET Framework 4.x, the Tlbimp.exe shipped with a .NET Framework 4.x SDK should be used.

여러 개의 형식 라이브러리를 포함하는 모듈에서 형식 라이브러리를 가져오는 경우 선택적으로 리소스 ID를 형식 라이브러리 파일에 추가할 수 있습니다.A resource ID can optionally be appended to a type library file when importing a type library from a module containing multiple type libraries. 이 파일이 현재 디렉터리에 있거나 전체 경로를 지정하는 경우에만 Tlbimp.exe를 사용하여 파일을 찾을 수 있습니다.Tlbimp.exe is able to locate this file only if it is in the current directory or if you specify the full path. 이 항목의 뒷부분에 있는 예제를 참조하십시오.See the example later in this topic.

예제Examples

다음 명령을 사용하여 myTest.tlb에 있는 형식 라이브러리와 이름이 같고 확장명이 .dll인 어셈블리를 생성합니다.The following command generates an assembly with the same name as the type library found in myTest.tlb and with the .dll extension.

tlbimp myTest.tlb   

다음 명령을 사용하여 myTest.dll이라는 이름의 어셈블리를 생성합니다.The following command generates an assembly with the name myTest.dll.

tlbimp  myTest.tlb  /out:myTest.dll  

다음 명령은 MyModule.dll\1에 지정된 형식 라이브러리와 동일한 이름과 .dll 확장명을 사용하는 어셈블리를 생성합니다.The following command generates an assembly with the same name as the type library specified by MyModule.dll\1 and with the .dll extension. MyModule.dll\1은 현재 디렉터리에 있어야 합니다.MyModule.dll\1 must be located in the current directory.

tlbimp MyModule.dll\1  

다음 명령을 사용하여 형식 라이브러리 myTestLib.dll에 대해 이름이 TestLib.dll인 어셈블리를 생성합니다.The following command generates an assembly with the name myTestLib.dll for the type library TestLib.dll. /transform:dispret 옵션은 형식 라이브러리의 dispinterface에 있는 메서드의 모든 [out, retval] 매개 변수를 관리되는 라이브러리의 반환 값으로 변형합니다.The /transform:dispret option transforms any [out, retval] parameters of methods on dispinterfaces in the type library into return values in the managed library.

tlbimp TestLib.dll /transform:dispret /out:myTestLib.dll  

앞의 예제에서 형식 라이브러리 TestLib.dll은 void를 반환하고 [out, retval] 매개 변수를 갖는 SomeMethod라는 disinterface 메서드를 포함합니다.The type library TestLib.dll, in the preceding example, includes a dispinterface method named SomeMethod that returns void and has an [out, retval] parameter. 다음 코드는 SomeMethod에 있는 TestLib.dll에 대한 입력 형식 라이브러리 메서드 시그니처입니다.The following code is the input type library method signature for SomeMethod in TestLib.dll.

void SomeMethod([out, retval] VARIANT_BOOL*);  

/transform:dispret 옵션을 지정하면 Tlbimp.exe는 SomeMethod[out, retval] 매개 변수를 bool 반환 값으로 변형합니다.Specifying the /transform:dispret option causes Tlbimp.exe to transform the [out, retval] parameter of SomeMethod into a bool return value. 다음은 /transform:dispret 옵션이 지정될 때 Tlbimp.exe에서 myTestLib.dll 관리되는 라이브러리의 SomeMethod에 대해 생성하는 메서드 시그니처입니다.The following is the method signature that Tlbimp.exe produces for SomeMethod in the managed library myTestLib.dll when the /transform:dispret option is specified.

bool SomeMethod();  

Tlbimp.exe를 사용하여 /transform:dispret를 지정하지 않고 TestLib.dll에 대해 관리되는 라이브러리를 생성하면 도구에서 myTestLib.dll 관리되는 라이브러리의 SomeMethod에 대해 다음 메서드 시그니처를 생성합니다.If you use Tlbimp.exe to produce a managed library for TestLib.dll without specifying the /transform:dispret, the tool produces the following method signature for SomeMethod in the managed library myTestLib.dll.

void SomeMethod(out bool x);  

참고 항목See also