Aracılığıyla paylaş


.netmodule Giriş Dosyaları Biçimini Seçme

MSIL .obj dosyası (/clr ile derlenmiş) bir .netmodule dosyası olarak da kullanılabilir. .obj dosyaları meta veriler ve yerel simgeler içerir. .netmodules yalnızca meta verileri içerir.

Bir MSIL .obj dosyasını /addmodule derleyici seçeneği aracılığıyla başka bir Visual Studio derleyicisine geçirebilirsiniz (ancak .obj dosyasının sonuçta elde edilen derlemenin bir parçası haline geldiğini ve derlemeyle birlikte gönderilmesi gerektiğini unutmayın). Örneğin, Visual C# ve Visual Basic'in /addmodule derleyici seçeneği vardır.

Dekont

Çoğu durumda, .net modülünü oluşturan derlemeden bağlayıcıya .obj dosyasını geçirmeniz gerekir. Bağlayıcıya bir .dll veya .netmodule MSIL modül dosyasının geçirilmesi LNK1107 neden olabilir.

.obj dosyaları, kaynaktaki #include aracılığıyla başvurabileceğiniz ilişkili .h dosyalarıyla birlikte, C++ uygulamalarının modüldeki yerel türleri kullanmasına izin verir, ancak bir .netmodule dosyasında, C++ uygulaması tarafından yalnızca yönetilen türler kullanılabilir. .obj dosyasını #using geçirmeye çalışırsanız, yerel türler hakkında bilgi sağlanmaz; Bunun yerine .obj dosyasının .h dosyasını #include.

Diğer Visual Studio derleyicileri yalnızca bir modülden yönetilen türleri kullanabilir.

MSVC bağlayıcısına modül girişi olarak .netmodule veya .obj dosyası kullanmanız gerekip gerekmediğini belirlemek için aşağıdakileri kullanın:

  • Visual C++ dışında bir Visual Studio derleyicisi ile oluşturuyorsanız bir .netmodule üretin ve bağlayıcıya giriş olarak .netmodule kullanın.

  • Modülleri üretmek için MSVC derleyicisini kullanıyorsanız ve modüller kitaplık dışında bir şey oluşturmak için kullanılacaksa, bağlayıcıya modül girişi olarak derleyici tarafından üretilen .obj dosyalarını kullanın; giriş olarak .netmodule dosyasını kullanmayın.

  • Modülleriniz yerel (yönetilen değil) bir kitaplık oluşturmak için kullanılacaksa bağlayıcıya modül girişi olarak .obj dosyalarını kullanın ve bir .lib kitaplık dosyası oluşturun.

  • Modülleriniz yönetilen bir kitaplık oluşturmak için kullanılacaksa ve bağlayıcıya yapılan tüm modül girişleri doğrulanabilirse (/clr:safe ile üretilir), bağlayıcıya modül girişi olarak .obj dosyalarını kullanın ve bir .dll (derleme) veya .netmodule (modül) kitaplık dosyası oluşturun.

  • Modülleriniz yönetilen bir kitaplık oluşturmak için kullanılacaksa ve bağlayıcıya bir veya daha fazla modül girişi yalnızca /clr ile oluşturulacaksa bağlayıcıya modül girişi olarak .obj dosyalarını kullanın ve bir .dll (derleme) oluşturun. Yönetilen türleri kitaplıktan kullanıma açmak istiyorsanız ve C++ uygulamalarının kitaplıktaki yerel türleri de tüketmesini istiyorsanız, kitaplığınız kitaplık bileşeni modülleri için .obj dosyalarından oluşur (ayrıca her modül için .h dosyalarını göndermek isteyeceksiniz, böylece kaynak koddan #include başvurabilirsiniz).

Ayrıca bkz.

Bağlayıcı Girişi olarak .netmodule Dosyaları