Makale numarası: 154093 - Son Gözden Geçirme: 21 Kasım 2006 Salı - Gözden geçirme: 3.3 Nasıl yapılır: Windows 95, Windows 98 veya Windows Millennium Edition'ın altında 16-bit kodu'den 32-bit kodu arama
Bu SayfadaÖzetGenellikle biraz aynı anda yerine aynı anda bağlantı noktası Win16 uygulamaları ve Win32 DLL'lere uygun olacaktır. Örneğin, 16 bit DLL Win32 için bağlantı noktası ancak yine de 16 bit kodundan aranacak isteyebilirsiniz. Bu makalede, 16 bit DLL 32 bit DLL çağırabileceğiniz bir mekanizma açıklanır. Düzeneği, bir thunk ve Microsoft Windows 95, Windows 98 altında uygulanan yöntem verilir veya Windows Millennium Edition (Me), düz bir thunk denir. Thunk kod yazma, üç ana adım vardır:
Daha fazla bilgiDüz bir thunk 16-bit ve 32 bit DLL birlikte çalışan oluşur. BIR Win16 uygulama çağrıları 16 bit DLL ve 16 bit DLL ça??r?r verilen bir işlev 32 bit DLL. 32 Bit DLL işlevi döndürdüğünde, sırayla Win16 uygulamaya döndüren geri 16 bit DLL, verir. Windows 95, Windows 98 veya Windows Me 16-bit ve 32-bit çekirdekleri tüm 32-bit için 16 bit kodundan geçiş yapmak ve yedeklemek gereken alt düzey ayrıntıları işlemek için arayarak 16-bit ve 32 bit DLL iş. Yeni bir düz thunk tasarlama thunk (.THK dosyası) kod oluşturma içerir. Bu komut dosyası ile thunk derleyici derlenip iki kez; her iki bayrakların bir kez bir Çevirici dil dosyasına derlenmiş:-DIS_16 ve - DIS_32. 16-Bit ve 32-bit Nesne Modülü sonucudur. Bu nesne modülleri 16-bit ve 32 bit DLL sırasıyla bağlıdır. Aşağıdaki şemada DLL'lerin oluşturulmasında kullanılan dosyaları özetler:
+------------+
| 16to32.THK |
+------------+
|
+------------+
| 16to32.ASM |
+------------+
/ \
-DIS_16 / \ -DIS_32
/ \
+-----------+ +-----------+
| 16THK.OBJ | | 32THK.OBJ |
+-----------+ +-----------+
/ \
+-------+ +-------+ +-------+
| APP16 | -> | DLL16 | -- THUNK -- | DLL32 |
+-------+ +-------+ +-------+
Düz Thunks oluşturmak için gerekli araçları
Thunk komut dosyası oluşturmaThunk derleyicisinden bir thunk oluşturmak için kullanılan bir komut dosyası oluşturmanız gerekebilir. Thunk komut dosyası işlevlerinin thunks çağırmak istediğiniz işlevin prototipler ve yönünü her işlevi için parametre belirtimini türü tanımlarını içeren bir metin dosyasıdır. Örneğin, diğerleri yalnızca giriş parametrelerine gerek duyar, ancak bazı işlevler giriş ve çıkış parametrelerine gerek duyar. Thunk komut parametreleri giriş olup olmadığını açıklamak için özel sözdizimi, çıktı, veya her ikisini de giriş ve çıkış'ı kullanın.16 32 Thunks-> thunk komut dosyasının aşağıdaki deyimi ile başlar: enablemapdirect1632 = true; Yalnızca bir thunk, ilk kez çalıştırıldığında, varsayılan olarak, 32 bit DLL yüklenir. Bu geç bağlama kullanıldığından, 16-bit kodu başlatılması 32 bit DLL tarafından gerçekleştirilen tüm eylemleri bağlıdır gerekir değil. 32 Bit DLL çünkü ilk thunk yalnızca onu çalıştırır, 16 bit DLL ilk kez yüklediğinde, 32 bit DLL DOSYASıNı yüklemede sorunlarla algılanacaktır değil. 32 Bit DLL dosyasının geç bağlama devre dışı bırakmak için <a0></a0>, thunk komut dosyanızda aşağıdaki satırı ekleyin: preload32 = true; Thunk derleyici thunk 16-bit tarafında __far __pascal bildirilmiş ve 32-bit yan __stdcall olmasını bekler. (WINAPI bildirimi alır bu iki yüzüne de dikkate.) __Cdecl ve kuralları çağrılıyor __fastcall thunk derleyici tarafından desteklenmiyor. Ancak, thunk derleyici gerçekten __far, __pascal ya da __stdcall anahtar kabul etmez; kabul edilir. Aşağıdaki thunk komut dosyası parametreleri olmayan bir işlev anlatılmaktadır: C language: void WINAPI MyThunk32(void); C++ Language: extern "C" void WINAPI MyThunk32(); Aşağıdaki thunk komut dosyası yapıları gibi daha karmaşık bir parametre türleri'ni kullanır. Bu örnek, giriş ve çıkış parametrelerini belirtmek için de gösterir: Derleyici Thunk kullanmaThunk derleyici kullanımı aşağıdaki gibidir:Thunk.exe/<inputfile>-o <outputfile>seçenekleri Aşağıdaki satırı bir 16-> 32 thunk komut dosyası derleme gösterilmiştir. Bu satır 16to32.thk adlı bir komut dosyası alır ve 16to32.asm adlı bir Çevirici dil dosyası oluşturur: -t thk 16to32.thk -o 16to32.asm thunk "-T thk" thunk işlevleri Çevirici dil dosyasında "thk_" öneki için thunk derleyici seçeneği bildirir. Bu önek, birden fazla thunk komut dosyası çifti dll bağlarken kullanılır ve her iki 16, 32 ve 16 thunks-> 32-> içeren dll bir çift oluşturmak için yararlıdır. 16 Bit DLL oluşturma
32 Bit DLL oluşturma
ReferanslarBu 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:154093
(http://support.microsoft.com/kb/154093/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