Makale numarası: 131313 - Son Gözden Geçirme: 29 Haziran 2004 Salı - Gözden geçirme: 2.1 32-Bit alma kitaplıkları .OBJs olmadan veya kaynağı oluşturma
Bu SayfadaÖzetBu makalede, kaynak kodu veya nesne modülünüz sahip olduğunuz bir .dll verilen bir alma kitaplığı oluşturmak açıklar. Visual C++ 16-bit sürümleriyle haliyle bir alma kitaplık bir .dll oluşturabileceği hiçbir 32-bit yardımcı programı vardır. Not: Bu yöntem, Microsoft'a ait olmayan geliştirme araçları ile oluşturulan DLL'lerle birlikte çalışmayabilir. Daha fazla bilgiNormalde, bir .dll ya da işlevleri veya veri öğeleri, bir alma kitaplığı verir (ve dosya verir) herhangi bir hedef oluşturma bağlama işlemini bir parçası olarak oluşturulur. Ancak, bir alma kitaplığı ile gelmemektedir bir üçüncü taraf .dll durumunda başarıyla yükleme zamanı dinamik bağlama kullanarak .dll kullanmak üzere bir alma kitaplık oluşturmak gerekebilir. Bir alma kitaplığı çalışma zamanı dinamik bağlama için gerekli değildir. Bir .dll verilen bir alma kitaplığı oluşturmak için iki yol vardır:
Bir .def dosyası oluşturmaNesne modülleri olan .dll bir C arabirimi işlevleri verir, ya da yalnızca, bir .def dosyası kaynak kodu olmayan bir .dll bir alma kitaplığı oluşturmak için kullanabilirsiniz. Özellikle, işlevleri C çağırma kuralı kullanmak üzere bildirilmiş olması gerekir. Bu, normal olarak da işlev için prototip içinde kullanılan _cdecl özniteliği tarafından belirtilir. _Cdecl özniteliği yok belirtilirse, varsayılan değer olduğunu unutmayın, /Gz (_stdcall varsayılandır) veya /Gr (_fastcall varsayılandır) CL komut satırında belirtilmedi. Bu kısıtlamaya nedeni tüm adları, önde gelen bir alt çizgi otomatik olarak aktarılır LIB hizmet programı tarafından yapılan bir varsayımına dayanır. Bu yalnızca _cdecl işlev adları için geçerlidir.Bir C arabirimi verilen işlevlerle bir .dll verildiğinde, aşağıdaki adımları izleyerek bir alma kitaplığı oluşturabilirsiniz:
Işlevler, stubbingC dışında arama kuralları kullan verilen işlevlerin durum biraz daha karmaşıktır. Bu, özellikle C++ işlevler'i ve daha karmaşık ad deseni düzenleri ilgili düşündüğünüz zaman geçerlidir. Bu yöntemi kullanmak için <a0></a0>, en az .dll'ın arabirimi tanımlayan bir üstbilgi dosyası olması gerekir.Bir <a0>Üstbilgi</a0> dosyasındaki prototipler stubbed işlevleri oluşturmak için <a0></a0>:
ÖRNEKMYDLL.DLL tanımlayan bir üstbilgi dosyası gibi görünüyorsa:CL /c /Ob0 mydll.CPP Not: CMyClass içinde tanımlanan işlevleri simgeleri oluşturulmasında zorlamak için inlining işlevi devre dışı bırakılması gerekiyor. Işlevi inlining etkinleştirilmişse, derleyici olduğunu çeviri birimindeki üye işlevleri için başvuru işlevi gövdelerini atmak; böylece fark. Visual C++ CL komut satırı başvurudaki satır içi işlevi genişletme en iyi duruma getirme altında tartışma bakın. .OBJ dosyaları sonra LIB /DEF kullanabilirsiniz: alma kitaplığı (.LIB) ve (.EXP) verir dosyası oluşturmak için: LIB /DEF: mydll.OBJ LIB</a0> komutu hakkında daha fazla bilgi için Visual C++ Books Online'da "LıB başvuru" başvurun. Ayrıca, Microsoft Knowledge Base'de aşağıdaki makaleye bakın: 140485
(http://support.microsoft.com/kb/140485/EN-US/
)
32 Bit DLL içinde PASCAL LIKE simgeleri verme Bu makaledeki bilginin uygulandığı durum:
Otomatik TercümeÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir. Makalenin İngilizcesi aşağıdaki gibidir:131313
(http://support.microsoft.com/kb/131313/en-us/
)
| Diğer Kaynaklar Diğer Destek Siteleri
ToplulukMakale çevirileri |






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email



Üste