c çalışma zamanı işlevler far işaretçiler Orta modeli kullan

Makale çevirileri Makale çevirileri
Makale numarası: 66462 - Bu makalenin geçerli olduğu ürünleri görün.
Bu makale arşivlenmiştir. "Olduğu gibi" sunulmaktadır ve bundan sonra güncelleştirilmeyecektir.
Hepsini aç | Hepsini kapa

Özet

Uzak Veri işaretçileri Orta modeli kullanılarak yazılmış C çalışma zamanı kitaplığı yordamlarına yapılan çağrıların kullanılabilir. Birçok Windows tabanlı uygulamaları Orta modeli kullanılarak yazılır, ancak veri işaretçileri için orta modeli C çalışma zamanı kitaplığı yordamlar kadar geçmesi gereken genellikle gerekli olmasıdır. Orta modeli C çalışma zamanı yordamları için şimdiye kadar işaretçileri geçirmeden önlemler alınır sürece, başarısız olur.

Orta modeli C çalışma zamanı yordamlarına yapılan çağrıların şimdiye kadar işaretçileri kullanmak için <a0></a0>, C çalışma zamanı işlevlerini modeli bağımsız sürümünü açıkça belirtilmelidir. Bir C çalışma zamanı işlevi modeli bağımsız bir sürümü gerekli veri işaretçisi (NEAR veya FAR) boyutunu tayini için her iki işlev parametreleri gerektirir ve değerleri döndürürler.

Tüm C çalışma zamanı yordamları modeli bağımsız sürümleri vardır. Bir yordam modeli bağımsız bir sürümü olup olmadığını belirlemek için <a0></a0>, yordam veya C çalışma zamanı kaynak el ile ilişkili üstbilgi dosyasına bakın.

Daha fazla bilgi

Orta bellek modeli kullanarak derlenmiş bir uygulama, uygulama bir veri kesimini ve birden çok kod kesimi olan C Derleyici varsayar. Uygulama yalnızca bir veri kesimini olduğundan, tüm veri işaretçileri işaretçileri olduğu varsayılır. Derleyici kaynak kodunu C çalışma zamanı işlevde karşılaştığında, bu nedenle, otomatik olarak herhangi bir işaretçi parametresi ' işaretçiler içeren varsayar. Derleyici uygun Orta modeli bildirimi için çalışma zamanı işlevlerini kullanır. Bu NEAR veri öğeleri için uygundur, ancak birçok Windows API işlevlerinin FAR işaretçileri, GlobalLock() gibi geri dönmek veya gerektiren.

Geçersiz kılmak için derleyici 's varsayımlar yordamının istediğiniz modeli bağımsız sürüm uygulama kaynak kodu belirtin. Üstbilgi dosyası yordam ile ilişkili veya C çalışma zamanı kaynak el ile hangi C çalışma zamanı yordamları modeli bağımsız en yeni sürümlerin yayımlanır yayımlanmaz belirlemek için kullanılabilir. Genellikle C çalışma zamanı işlevlerini modeli bağımsız sürümleri "_n" veya "_f" öncesinde. Örneğin, strdup(), bir bellek modeli bağımlı işlevi, iki modeli bağımsız türevleri vardır: _nstrdup() NEAR işaretçiler ve _fstrdup() FAR işaretçileri için.

C çalışma zamanı yordamları modeli bağımsız sürümleri kullanırken, derleyici uygulamanın verilerin yakın olduğunu varsayar değil. Bu nedenle, şimdiye kadar işaretçileri Orta modeli uygulamalarda yakın işaretçileri normal olarak kullanılacaktır kullanılabilir.

Ne yazık ki, tüm C çalışma zamanı yordamları bu esneklik sunar. Yordam modeli bağımsız bir sürümü yoksa, iki seçenek kullanılabilir:

  1. C çalışma zamanı yordam ile aynı işlevselliği sunan modeli bağımsız bir yordam yazmak.
  2. Işaretçiler ve standart C çalışma zamanı, yordamlar, kullanılabilir böylece verileri, varsayılan veri kesimi kopyalayın.
Model bağımsızlığı gösteren bir C çalışma zamanı yordamına strncpy() ' dir. Uygulama kaynak kodu, aşağıdakine benzer bir satır içerip içermediğini
   Char_ptr = strncpy(String1, Const_String2, Count);
				
derleyici varsayılan bildirim için yordamı kullanın. Bildirim üstbilgi dosyasında bulunan ve aşağıdakine benzer:
   char *strncpy(char *string1, const char *string2, size_t);
				
yordam DS kaydının her iki dizeleri başvururken çünkü bu durumda varsayılan veri kesimi verileri olmalıdır.

Biri veya her ikisi de dizelerin dışında varsayılan veri kesimi olan bir veri kesimini kullanılıyorsa, aynı ortam modeli uygulamalarda aynı kaynak satırını şu şekilde değiştirin:
   Char_ptr = _fstrncpy(String1, Const_String2, Count);
				
böyle bir durumda, derleyici, aşağıdaki işlevi bildirimi kullanacağı
   char _far * _far _fstrncpy(char _far *string1,
                              const char _far*strings,
                              size_t count);
				
ve uygulama düzgün şimdiye kadar kesimleri verileri.

Not: varsayılan bildirim işlevi bir büyük modeli uygulamada aynı C çalışma zamanı yordamını kullanarak, modeli bağımsız sürüm olacaktır. Bu nedenle, yukarıdaki örnekte, derleyici strncpy() çağrısı _fstrncpy() için uygun bir çağrıyla yerini alır.

Özellikler

Makale numarası: 66462 - Last Review: 10 Şubat 2014 Pazartesi - Gözden geçirme: 3.0
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Windows Software Development Kit 3.0
  • Microsoft Windows Software Development Kit 3.1
Anahtar Kelimeler: 
kbnosurvey kbarchive kbmt kb16bitonly KB66462 KbMttr
Machine-translated Article
Ö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:66462

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com