.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.
/addmodule derleyici seçeneği aracılığıyla msil .obj dosyasını 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.
Not
Çoğu durumda, bağlayıcıya .net modülünü oluşturan derlemeden .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.
dosyaları .obj, 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. #using bir .obj dosyası 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 bir .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 oluşturmak 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ı 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ı 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ı 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üllerinin .obj dosyalarından oluşur (ayrıca her modül için .h dosyalarını göndermek istersiniz, böylece kaynak koddan #include başvurabilirsiniz).