MSIL .obj 파일(컴파일됨)을 /clr파일로 .netmodule 사용할 수 있습니다.
.obj 파일에는 메타데이터 및 네이티브 기호가 포함되어 있습니다.
.netmodules 메타데이터만 포함합니다.
컴파일러 옵션을 사용하여 MSIL .obj 파일을 다른 Visual Studio 컴파일러에 /addmodule 전달합니다. 파일은 .obj 결과 어셈블리의 일부가 되며 어셈블리와 함께 제공되어야 합니다. 예를 들어 Visual C# 및 Visual Basic에는 /addmodule 컴파일러 옵션이 있습니다.
Note
대부분의 경우 .net 모듈을 만든 컴파일에서 링커 .obj 에 파일을 전달해야 합니다. 링커에 .dll 또는 .netmodule MSIL 모듈 파일을 전달하면 LNK1107 발생할 수 있습니다.
.obj 파일은 원본의 #include 통해 참조하는 연결된 .h 파일과 함께 C++ 애플리케이션이 모듈의 네이티브 형식을 사용할 수 있도록 허용합니다.
.netmodule 파일에서 관리되는 형식만 C++ 애플리케이션에서 사용할 수 있습니다. 파일을 #using 전달 .obj 하려고 하면 네이티브 형식에 대한 정보를 사용할 수 없습니다. 대신 파일의 .h 파일을 #include.obj.
다른 Visual Studio 컴파일러는 모듈에서 관리되는 형식만 사용할 수 있습니다.
MSVC 링커에 대한 모듈 입력으로 파일을 사용해야 .netmodule.obj 하는지 여부를 확인하려면 다음 지침을 사용합니다.
Visual C++가 아닌 Visual Studio 컴파일러를 사용하여 빌드하는 경우 링커에 대한 입력으로 생성
.netmodule하고 사용합니다.netmodule.MSVC 컴파일러를 사용하여 모듈을 생성하고 모듈을 사용하여 라이브러리 이외의 항목을 빌드하는 경우 컴파일러에서 생성된 파일을 링커에 대한 모듈 입력으로 사용합니다
.obj. 파일을 입력으로 사용하지.netmodule마세요.모듈을 사용하여 네이티브(관리되지 않는) 라이브러리를 빌드하는 경우 파일을 링커에 대한 모듈 입력으로 사용하고
.obj라이브러리 파일을 생성.lib합니다.모듈을 사용하여 관리되는 라이브러리를 빌드하고 링커에 대한 모든 모듈 입력을 확인할 수 있는 경우(생성됨
/clr:safe) 링커에 대한 모듈 입력으로 파일을 사용하고.obj(어셈블리) 또는.netmodule(모듈) 라이브러리 파일을 생성.dll합니다.모듈을 사용하여 관리되는 라이브러리를 빌드하고 링커에 대한 하나 이상의 모듈 입력만
/clr사용하여 생성되는 경우 파일을 링커에 대한 모듈 입력으로 사용하고.obj(어셈블리)를 생성.dll합니다. 라이브러리에서 관리되는 형식을 노출하고 C++ 애플리케이션에서 라이브러리의 네이티브 형식을 사용하려는 경우 라이브러리는 라이브러리 구성 요소 모듈에 대한 파일로 구성.obj됩니다. 또한 소스 코드에서.h#include 사용하여 참조할 수 있도록 각 모듈에 대한 파일을 제공하려고 합니다.