DLL 무엇입니까?

기술 자료 번역 기술 자료 번역
기술 자료: 815065 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

이 페이지에서

요약

가 이 문서에 설명하는 동적 연결 라이브러리 (DLL) 입니다 및 DLL을 사용하는 경우 발생할 수 있는 다양한 문제.

그런 다음 자신의 DLL을 개발할 때 고려해야 할 몇 가지 고급 문제를 설명합니다. 어떤 DLL 설명하는, DLL 진입점을 동적 연결 방법, DLL 종속성을 이 문서에서 설명하는, DLL 함수 및 문제 해결 도구가 DLL 내보내기.

이 문서에서는 DLL의 상위 수준 비교 Microsoft .NET Framework 어셈블리를. 함께 완료된

소개(Introduction)

운영 체제의 기능을 사용하여 Microsoft Windows 운영 "적용 대상" 절에 나열된 시스템의 동적 연결 라이브러리 (DLL) 에 의해 제공됩니다. 이러한 Windows 운영 체제 중 하나를 사용하여 프로그램을 실행하면 또한 프로그램 기능을 DLL에 의해 제공될 수 있습니다. 예를 들어, 일부 프로그램은 많은 다른 모듈이 포함될 수 있고 프로그램 각 모듈에 포함된 및 DLL에서 분산.

DLL 사용을 모듈화 코드, 코드 재사용, 효율적인 메모리 사용 수준을 올릴 수 있고 디스크 공간을 줄일 수 있습니다. 따라서 운영 체제와 프로그램을 빨리, 더 빠르게 실행하고 컴퓨터의 디스크 공간을 적게 걸릴.

DLL 프로그램을 사용하는 경우 프로그램을 실행할 수 없습니다. 종속성 호출되는 문제가 발생할 수 있습니다. DLL 프로그램을 사용하는 경우 종속성이 만들어집니다. 다른 프로그램이 덮어씁니다 이 종속성이 중단될 경우 원래 프로그램을 성공적으로 실행되지 않을 수 있습니다.

Microsoft .NET Framework 도입하여 어셈블리를 사용하여 대부분의 종속성 문제는 제거된.

추가 정보

DLL 무엇입니까?

DLL 코드와 동시에 두 개 이상의 프로그램에서 사용할 수 있는 데이터가 들어 있는 라이브러리입니다. 예를 들어, Windows 운영 체제에서 Comdlg32 DLL 일반적인 수행하는 함수에 관련된 대화 상자. 따라서 각 프로그램이 열기 대화 상자를 구현하는 데 이 DLL에 포함된 기능을 사용할 수 있습니다. 이렇게 하면 코드 재사용 및 효율적인 메모리 사용 수준을 올릴 수 있습니다.

DLL을 사용하여 프로그램을 별도의 구성 요소로 모듈화된 될 수 있습니다. 예를 들어, 계정 프로그램은 모듈에서 판매할 수 있습니다. 각 모듈은 해당 모듈 설치되어 있는 경우 런타임에 주 프로그램은 로드할 수 있습니다. 모듈 별도의 있기 때문에 프로그램 로드 시간이 빠릅니다 및 해당 기능이 요청될 때 모듈 경우에만 로드됩니다.

또한 업데이트를 쉽게 프로그램의 다른 부분에 영향을 주지 않고 각 모듈에 적용할 수 있습니다. 예를 들어, 급여 프로그램이 있을 수 있으며 매년 세금 속도를 변경합니다. 이러한 변경 사항은 DLL로 격리된 경우 빌드 또는 전체 프로그램을 다시 설치해야 하는 업데이트를 적용할 수 있습니다.

다음 목록에서는 Windows 운영 체제에서 DLL로 구현되는 파일 중 일부를 설명합니다.
  • ActiveX 컨트롤 (.ocx) 파일
    ActiveX 컨트롤은 일정에서 날짜를 선택할 수 있도록 일정 컨트롤을 들 수 있습니다.
  • 제어판 (.cpl) 파일
    제어판에 있는 항목을 .cpl 파일을 예입니다. 각 항목은 특정된 DLL 입니다.
  • 장치 드라이버 (.drv) 파일
    장치 드라이버가 프린터로 인쇄를 제어하는 프린터 드라이버를 예입니다.

DLL 장점

다음 목록은 일부 프로그램에서 DLL을 사용하는 경우 제공하는 이점을 설명합니다.
  • 더 적은 리소스를 사용합니다.
    여러 프로그램이 같은 라이브러리 함수를 사용할 때 DLL 디스크와 실제 메모리에 로드된 코드 중복을 줄일 수 있습니다. 이것은 포그라운드로 실행 중인 프로그램이 아니라 아니라 Windows 운영 체제에서 실행 중인 다른 프로그램을 성능에 크게 영향을 미칠 수 있습니다.
  • Promotes 모듈식 아키텍처
    DLL 모듈식 프로그램을 개발하는 수준을 올릴 수 있습니다. 이렇게 하면 여러 언어 버전을 필요로 하는 많은 프로그램이나 모듈식 아키텍처는 필요한 프로그램을 개발할 수 있습니다. 모듈식 프로그램의 런타임에 동적으로 로드할 수 많은 모듈이 있는 회계 프로그램을 예입니다.
  • eases 배포 및 설치
    DLL 내의 함수는 업데이트나 수정 프로그램이 필요한 경우 DLL의 설치 및 배포 있지 않은 필요한 프로그램을 사용하여 DLL을 다시. 여러 프로그램에서 동일한 DLL을 사용할 경우, 또한 여러 프로그램이 모든 업데이트나 수정 프로그램을 활용할 수 있습니다. 정기적으로 업데이트되거나 수정된 타사 DLL을 사용하는 경우 이 문제가 더 자주 발생할 수 있습니다.

DLL 종속성

프로그램 또는 DLL 다른 DLL에서 DLL 함수를 사용하는 경우 종속성이 만들어집니다. 따라서 프로그램이 더 이상 독립적입니다 및 의존 관계가 끊어진 경우 프로그램에 문제가 발생할 수 없습니다. 예를 들어, 다음 작업 중 하나가 발생하면 프로그램이 실행되지 않을 수 있습니다.
  • 종속 DLL은 새 버전으로 업그레이드됩니다.
  • 종속 DLL이 고정되어 있습니다.
  • 종속 DLL은 함께 이전 버전은 덮어씁니다.
  • 종속 DLL은 컴퓨터에서가 제거됩니다.
일반적으로 이러한 작업은 DLL 충돌은 것으로 알려져 있습니다. 이전 버전과의 호환성이 적용된 경우 프로그램이 제대로 실행되지 않을 수 있습니다.

다음 목록에서는 Microsoft Windows 2000 및 종속성 문제를 최소화하기 위해 최신 Windows 운영 체제에서 도입된 변경 사항을 설명합니다.
  • Windows 파일 보호
    Windows 파일 보호 운영 체제의 시스템 DLL이 업데이트되거나 권한 없는 에이전트에 의해 삭제된 것을 방지할 수 있습니다. 따라서 프로그램 설치 제거 또는 시스템 DLL 정의된 DLL을 업데이트하는 경우 Windows 파일 보호에 대한 유효한 디지털 서명이 찾습니다.
  • 전용 DLL
    전용 DLL 자유로운 프로그램에서 공유 DLL의. 개인 DLL에 변경된 내용 격리하는 사용할 버전 관련 정보 또는 빈 .local 파일을 프로그램에서 사용하는 DLL의 버전이 적용합니다. 개인 DLL을 사용하려면 DLL을 프로그램이 루트 폴더에서 찾습니다. 그런 다음 새 프로그램 DLL에 버전 관련 정보를 추가하십시오. 이전 프로그램 빈 .local 파일을 사용하십시오. 각 메서드는 프로그램 루트 폴더에 있는 개인 DLL을 사용하는 운영 체제를 알려 줍니다.

DLL 문제 해결 도구

여러 가지 도구가 DLL 문제를 해결하는 데 사용할 수 있습니다. 이러한 도구 중 일부는 다음 도구가 있습니다.

종속성 워커

재귀적으로 검색을 프로그램에 의해 사용되는 모든 종속 DLL에 대한 종속성 워커 도구가 있습니다. 종속성 워커 종속성 워커 프로그램을 열 때 다음 검사를 수행합니다.
  • 누락된 DLL에 대한 종속성을 워커가 확인합니다.
  • 프로그램 파일 또는 잘못된 DLL 종속성을 워커가 확인합니다.
  • 종속성 워커 함수 가져오기 및 내보내기 함수에 일치하는 확인합니다.
  • 종속성 워커 순환 종속성이 오류가 있는지 검사합니다.
  • 종속성 워커 모듈에 대해 서로 다른 운영 체제 때문에 유효하지 않은 모듈을 확인합니다.
종속성 워커 프로그램에서 사용하는 모든 DLL 문서화할 수 있습니다. 방지하고 앞으로 발생할 수 있는 DLL을 문제를 해결하는 데 도움이 될 수 있습니다. Visual Studio 6.0 설치할 때 종속성 워커 다음 디렉터리에 있습니다.
drive시각 Studio\Common\Tools \Program Files\Microsoft

DLL 범용 문제 해 찾기

DLL 범용 문제 해 (DUPS) 도구는 감사 문서 비교 및 DLL 정보를 표시하는 데 사용됩니다. 다음 목록에서는 최대 DUPS 도구를 만드는 유틸리티에 대해 설명합니다.
  • Dlister.exe
    이 유틸리티는 해당 컴퓨터의 모든 DLL을 열거하고 정보 텍스트 파일 또는 데이터베이스 파일에 기록합니다.
  • Dcomp.exe
    이 유틸리티는 두 개의 텍스트 파일에 나열되어 있는 DLL 비교하고 차이점이 포함된 세 번째 텍스트 파일을 만듭니다.
  • Dtxt2DB.exe
    이 유틸리티는 Dlister.exe 유틸리티 및 Dcomp.exe dllHell 데이터베이스에 유틸리티를 사용하여 만든 텍스트 파일을 로드합니다.
  • DlgDtxt2DB.exe
    이 유틸리티는 그래픽 사용자 인터페이스(GUI) 버전을 Dtxt2DB.exe 유틸리티 제공합니다.
DUPS 도구에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
247957DUPS.exe 사용하여 DLL을 호환성 문제 해결

데이터베이스 DLL 도움말

DLL 도움말 데이터베이스의 특정 버전의 Microsoft 소프트웨어 제품을 설치 DLL 찾을 수 있습니다. DLL 도움말 데이터베이스에 대한 자세한 내용은 다음 Microsoft 웹 사이트를 방문하십시오.
http://support.microsoft.com/dllhelp/

DLL 개발

이 섹션에서는 문제와 직접 DLL을 개발할 때 고려해야 할 요구 사항을 설명합니다.

DLL의 형식

응용 프로그램에서 DLL을 로드할 때 연결하는 두 가지 방법을 사용하여 내보낸된 DLL 함수를 호출할 수 있습니다. 로드 시 동적 링크 및 런타임 시 동적 링크 연결하는 두 가지 방법 있습니다.
로드 시 동적 링크
로드 시 동적 링크 에, 응용 프로그램에서 명시적 로컬 함수 같은 내보낸된 DLL 함수를 호출합니다. 컴파일하고 응용 프로그램을 링크할 때 로드 시 동적 링크를 사용할 수 있는 헤더 파일 (.h) 및 가져오기 라이브러리 (.lib) 파일을 제공하십시오. 이렇게 하면 링커에서 시스템을 DLL을 로드하고 로드 시에 내보낸된 DLL 함수를 위치를 확인하는 데 필요한 정보를 제공합니다.
런타임 시 동적 링크
런타임 시 동적 링크 에, 응용 프로그램 LoadLibrary 함수 또는 DLL을 로드할 LoadLibraryEx 함수를 호출합니다. DLL이 성공적으로 로드된 후 호출하려는 내보낸 DLL 함수의 주소를 받도록 GetProcAddress 를 함수를 사용합니다. 런타임 시 동적 링크를 사용하는 경우 가져오기 라이브러리 파일이 필요하지 않습니다.

다음 목록에서는 사용 로드 시 동적 링크 및 런타임 동적 링크를 사용하는 경우 응용 프로그램 조건에 대해 설명합니다.
  • 시작 성능
    응용 프로그램의 최초 시작 성능이 중요한 경우에는 런타임 동적 연결을 사용해야 합니다.
  • 쉽게 사용
    로드 시 동적 링크 에, 내보낸된 DLL 함수 같은 로컬 함수가 있습니다. 이러한 함수를 호출할 수 있습니다.
  • 응용 프로그램 논리
    런타임 시 동적 링크 에, 응용 프로그램에 필요한 다른 모듈을 로드하지 분기할 수 있습니다. 여러 언어 버전을 개발할 때 중요합니다.

DLL의 진입점

DLL을 만들 때 필요에 따라 진입점 함수를 지정할 수 있습니다. 진입점 함수가 자신을 DLL에서 분리할 또는 프로세스 또는 스레드 자체가 DLL에 연결할 때 호출됩니다. 진입점 함수가 데이터 구조를 초기화하지 DLL이 필요한 데이터 구조를 파괴할 수 있습니다. 또한 다중 스레드 응용 프로그램의 경우 (TLS (스레드 로컬 저장소에서 개인 진입점 함수가 각 스레드에 있는 메모리를 할당할 수 있습니다. 다음 코드는 DLL 진입점 함수를 예입니다.
BOOL APIENTRY DllMain(
HANDLE hModule,	// Handle to DLL module
	DWORD ul_reason_for_call,	// Reason for calling function
	LPVOID lpReserved ) // Reserved
{
	switch ( ul_reason_for_call )
	{
		case DLL_PROCESS_ATTACHED:
		// A process is loading the DLL.
		break;
		case DLL_THREAD_ATTACHED:
		// A process is creating a new thread.
		break;
		case DLL_THREAD_DETACH:
		// A thread exits normally.
		break;
		case DLL_PROCESS_DETACH:
		// A process unloads the DLL.
		break;
	}
	return TRUE;
}
진입점 함수가 FALSE 값을 반환하는 경우 로드타임 동적 링크를 사용하는 응용 프로그램이 시작되지 것입니다. 런타임 시 동적 링크를 사용하는 경우 개별 DLL을 로드할 수 없습니다.

진입점 함수가 간단한 초기화 작업을 수행해야 하는 경우에만 및 기타 DLL 로드 또는 종료 함수를 호출해야 합니다. 예를 들어, 입력 지점 함수를 사용하면 직접 또는 간접적으로 LoadLibrary 함수 또는 LoadLibraryEx 함수를 호출하지 않아야 합니다. 또한 프로세스가 종료되는 경우 FreeLibrary 함수를 호출하지 않아야 합니다.

참고 다중 스레드 응용 프로그램은 해당 액세스 확인해야 할 DLL 전역 데이터가 동기화됩니다 (안전한 데이터 손상을 방지하기 위해 스레드). 이렇게 하려면 TLS를 각 스레드마다 고유한 데이터를 제공할 수 있습니다.

DLL 함수를 내보내는 중

DLL 함수를 내보낼 내보낸된 DLL 함수를 함수 키워드를 추가하거나 내보낸된 DLL 함수 목록이 모듈 정의 (.def) 파일을 만들 수 있습니다.

함수는 키워드를 사용하려면 다음 키워드를 사용하여 내보낼 각 함수를 선언해야 합니다.
__declspec(dllexport)
내보낸된 DLL 함수를 사용하면 응용 프로그램에서 사용하기 위해 가져오려는 다음과 같은 키워드를 사용하여 각 함수를 선언해야 합니다.
__declspec(dllimport)
일반적으로, import 문을 정의하는 문 및 내보내기 문을 구분하기 위해 ifdef 문을 한 헤더 파일을 사용합니다.

모듈 정의 파일 내보낸된 DLL 함수를 선언할 수 있습니다. 모듈 정의 파일을 사용할 때 내보낸된 DLL 함수를 함수 키워드를 추가할 필요가 없습니다. 모듈 정의 파일에서 LIBRARY 문이 및 EXPORTS 문은 해당 DLL에 [NULL]에 대한 선언합니다. 다음 코드에서는 정의 파일의 예입니다.
// SampleDLL.def
//
LIBRARY "sampleDLL"

EXPORTS
  HelloWorld

샘플 DLL 및 응용 프로그램

Microsoft Visual C++ 6.0 에서는 프로젝트 형식을 Win32 동적 연결 라이브러리 또는 MFC 응용 프로그램 마법사 (dll) 프로젝트 형식을 선택하여 DLL을 만들 수 있습니다.

다음 코드에서는 Visual C++ Win32 동적 연결 라이브러리 프로젝트 형식을 사용하여 만든 DLL 예입니다.
// SampleDLL.cpp
//

#include "stdafx.h"
#define EXPORTING_DLL
#include "sampleDLL.h"

BOOL APIENTRY DllMain( HANDLE hModule, 
                       DWORD  ul_reason_for_call, 
                       LPVOID lpReserved
					 )
{
    return TRUE;
}

void HelloWorld()
{
	MessageBox( NULL, TEXT("Hello World"), TEXT("In a DLL"), MB_OK);
}
// File: SampleDLL.h
//
#ifndef INDLL_H
#define INDLL_H

#ifdef EXPORTING_DLL
extern __declspec(dllexport) void HelloWorld() ;
#else
extern __declspec(dllimport) void HelloWorld() ;
#endif

#endif
다음 코드는 SampleDLL DLL에서 내보낸된 DLL 함수를 호출하는 Win32 응용 프로그램 프로젝트를 예입니다.
// SampleApp.cpp 
//

#include "stdafx.h"
#include "sampleDLL.h"

int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{ 	
	HelloWorld();
	return 0;
}
참고 로드 시 동적 링크 에 들어 있는 SampleDLL.lib 링크해야 합니다 가져오기 라이브러리가 있는 SampleDLL 작성할 때 만들어지는 프로젝트.

런타임 시 동적 링크 에, 다음과 유사한 코드를 사용할 수 있는 SampleDLL.dll 호출하기 위한 코드를 내보낸 DLL 함수를.
...
typedef VOID (*DLLPROC) (LPTSTR);
...
HINSTANCE hinstDLL;
DLLPROC HelloWorld;
BOOL fFreeDLL;

hinstDLL = LoadLibrary("sampleDLL.dll");
if (hinstDLL != NULL)
{
    HelloWorld = (DLLPROC) GetProcAddress(hinstDLL, "HelloWorld");
    if (HelloWorld != NULL)
        (HelloWorld);

    fFreeDLL = FreeLibrary(hinstDLL);
}
...
컴파일 및 SampleDLL 응용 프로그램을 연결할 때 Windows 운영 체제 SampleDLL DLL이 순서대로 다음 위치에서 찾습니다.
  1. 응용 프로그램 폴더
  2. 현재 폴더
  3. Windows 시스템 폴더

    참고GetSystemDirectory 함수가 Windows 시스템 폴더의 경로를 반환합니다.
  4. Windows 폴더

    참고GetWindowsDirectory 함수가 Windows 폴더의 경로를 반환합니다.

.NET Framework 어셈블리

Microsoft .NET과 .NET Framework 도입은 통해 어셈블리를 사용하여 DLL 관련된 문제 대부분이 제거된. .NET 공용 언어 런타임 (CLR) 에서 제어하는 실행되는 기능의 논리적 단위를 어셈블리입니다. 실제로 어셈블리 .dll 파일이나 .exe 파일로 존재합니다. 그러나 내부적으로 어셈블리 Microsoft Win32 DLL에서 매우 다릅니다.

어셈블리 파일을 어셈블리 매니페스트에, 형식 메타데이터를, Microsoft 중간 언어 (MSIL) 코드 및 기타 리소스가 포함되어 있습니다. 어셈블리 매니페스트 어셈블리에 대한 자체 설명 수 필요한 모든 정보를 제공하는 어셈블리 메타데이터가 들어 있습니다. 어셈블리 매니페스트에 다음과 같은 정보가 포함되어 있습니다.
  • assembly name
  • 버전 정보
  • culture 정보
  • 강력한 이름 정보
  • 어셈블리 목록 파일
  • 형식 참조 정보
  • 참조 및 종속 어셈블리 정보
어셈블리에 포함된 MSIL 코드는 직접 실행할 수 없습니다. 대신 MSIL 코드 실행은 통해 CLR 관리합니다. 어셈블리를 만들 때 기본적으로 응용 프로그램의 개인 어셈블리가 있습니다. 공유 어셈블리를 만들려면 어셈블리에 강력한 이름 지정 및 다음 어셈블리를 전역 어셈블리 캐시에 게시하는 필요합니다.

다음 목록에서는 Win32 DLL의 기능을 비교하여 어셈블리에 기능에 대해 설명합니다.
  • 자기 설명
    어셈블리를 만들 때 어셈블리 매니페스트가 있는 어셈블리를 실행하려면 CLR에 대해 필요한 모든 정보가 포함되어 있습니다. 어셈블리 매니페스트에 종속 어셈블리 목록이 포함되어 있습니다. 따라서 CLR 일관된 응용 프로그램에 사용된 어셈블리 집합을 유지 관리할 수 있습니다. Win32 DLL의 공유 DLL을 사용하는 경우 응용 프로그램에서 사용되는 DLL 집합 사이의 일관성을 유지할 수 없습니다.
  • 버전 관리
    어셈블리 매니페스트에서 버전 정보는 기록하고 CLR에 의해 적용됩니다. 또한 버전 정책이 버전별로 사용 적용할 수 있습니다. Win32 DLL의 버전 관리 운영 체제에 적용할 수 없습니다. 대신, DLL 이전 버전과의 호환 가능한지 확인해야 합니다.
  • side-by-side 배포
    어셈블리가 side-by-side 배포를 지원합니다. 한 응용 프로그램에서 특정 버전의 어셈블리 사용하고 다른 응용 프로그램에서 서로 다른 버전의 어셈블리 사용할 수 있습니다. Windows 2000 시작, 응용 프로그램 폴더에 DLL을 찾는 side-by-side 배포가 지원됩니다. 또한 Windows 파일 보호가 시스템을 DLL을 덮어 또는 권한 없는 에이전트에 의해 대체될 수 없습니다.
  • self-containment 및 격리
    어셈블리를 사용하여 개발한 응용 프로그램을 독립적인 및 컴퓨터에서 실행 중인 다른 응용 프로그램에서 격리된 될 수 있습니다. 이 기능을 사용하면 0 영향을 설치를 만들 수 있습니다.
  • 실행
    어셈블리의 어셈블리 매니페스트에 제공되며 CLR에 의해 제어되는 보안 권한 실행됩니다.
  • 언어 독립적
    지원되는 .NET 언어 중 하나를 사용하여 어셈블리를 개발할 수 있습니다. 예를 들어, Microsoft Visual C# 에서 어셈블리를 개발하고 다음 Microsoft Visual Basic .NET 에서는 어셈블리에 사용할 수 프로젝트.

참조

자세한 DLL 및 .NET Framework 어셈블리, 다음 Microsoft 웹 사이트를 방문하십시오.
DLL 충돌
http://msdn2.microsoft.com/en-us/library/ms811694.aspx

응용 프로그램에서 공유 side-by-side 구성 요소 구현
http://msdn2.microsoft.com/en-us/library/ms811700.aspx

응용 프로그램 및 Windows XP side-by-side 어셈블리를 만들고 처리하는 방법이 격리된
http://msdn2.microsoft.com/en-us/library/ms997620.aspx

배포 단순화 및 .NET Framework를 사용하여 DLL 충돌 해결
http://msdn2.microsoft.com/en-us/netframework/aa497268.aspx

.NET Framework 개발자 가이드: 어셈블리
http://msdn2.microsoft.com/en-us/library/hk5f40ct(vs.71).aspx

런타임 시 동적 링크
http://msdn2.microsoft.com/en-us/library/ms685090.aspx

스레드 로컬 저장소
http://msdn2.microsoft.com/en-us/library/ms686749.aspx

속성

기술 자료: 815065 - 마지막 검토: 2007년 12월 4일 화요일 - 수정: 5.11
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems
  • Microsoft Windows Server 2003, Datacenter x64 Edition
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
  • Microsoft Windows Server 2003, Enterprise x64 Edition
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Standard x64 Edition
  • Microsoft Windows Server 2003, Web Edition
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Datacenter Server
  • Microsoft Windows 2000 Server
  • Microsoft Windows XP Professional
  • Microsoft Windows XP Home Edition
  • Microsoft Windows XP Media Center Edition 2005 Update Rollup 2
  • Microsoft Windows XP Tablet PC Edition
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows NT 4.0
  • Microsoft Windows NT Workstation 4.0 Developer Edition
  • Microsoft Windows NT Workstation 3.51
  • Microsoft Windows 98 Second Edition
  • Microsoft Visual Studio .NET 2003 Professional Edition
  • Microsoft Visual Studio .NET 2003 Enterprise Architect
  • Microsoft Visual Studio .NET 2003 Enterprise Developer
  • Microsoft Visual Studio .NET 2003 Academic Edition
  • Microsoft Visual Studio .NET 2002 Professional Edition
  • Microsoft Visual Studio .NET 2002 Enterprise Architect
  • Microsoft Visual Studio .NET 2002 Enterprise Developer
  • Microsoft Visual Studio .NET 2002 Academic Edition
  • Microsoft Visual Studio 6.0 Professional Edition
  • Microsoft Visual Studio 6.0 Enterprise Edition
  • Microsoft Visual Studio 2005 Express Edition
  • Microsoft Visual Studio 2005 Professional Edition
  • Microsoft Visual Studio 2005 Standard Edition
  • Microsoft Office XP Professional Edition
  • Microsoft Office XP Small Business Edition
  • Microsoft Office XP Standard Edition
  • Microsoft Office Home Edition 2003
  • Microsoft Office Professional Edition 2003
  • Microsoft Office Small Business Edition 2003
  • Microsoft Office Standard Edition 2003
키워드:?
kbmt kbxplatform kbtshoot kbdebug kbdll kbinfo KB815065 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.
이 문서의 영문 버전 보기:815065

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com