2010-11-18 12 views
0

http://msdn.microsoft.com/en-us/library/h21twfw7(v=VS.100).aspx'a göre (Visual Studio 2010 için) strstreambuf kullanımdan kaldırılmıştır. Kullanımdan kaldırılan kavramın, beyanların/tanımların hala mevcut olduğu anlamına geldiği, ancak yakın gelecekte kütüphaneden kaldırılacağı (veya kaldırılacağı) olduğu kanaatindeydim. Ancak, sınıfa bağlanma girişiminde bulunmak Visual C++ 2010 projesi ile başarısız oluyor. Bu soru iki bölümdür:strstreambuf Visual C++ 2010'da kullanımdan kaldırıldı - hala bağlantı kurmak mümkün mü?

  • Birisi, Visual C++ 2010 kitaplıklarından tamamen strstreambuf'un tamamen düştüğünü bana söyleyebilir mi? Bazı kısa tanılama, "C: \ Program Files \ Microsoft Visual Studio 10.0 \ VC \ lib \ msvcprt.lib" (VS2010 için) tanımlarını bulamamıştım; Program Dosyaları \ Microsoft Visual Studio 8 \ VC \ lib \ msvcprt.lib "(VS2005 için). Tanımın sağlanıp sağlanmadığını öğrenmek için .lib'de dumpbin.exe'yi kullandım. Ayrıca "C: \ Program Files \ Microsoft Visual Studio 10.0 \ VC \ include \ strstream" seçeneğini de işaretledim ve sınıfın dışa aktarılmasının _CRTIMP2_PURE (__declspec (dllimport)) anahtar kelimesinin 2010 yılında geçtiğini kaydettim.
  • Hala yapabilir miyim? Visual C++ 2010'da Visual C++ 2010 projesinde kullanımdan kaldırılmış olsa da, strstreambuf bağlantısı? Benim ihtiyaçlarına

Biraz ön :

  • Ben strstreambuf bağlanan bir 3. parti tescilli kütüphane kullanın. Tescilli kütüphane muhtemelen Visual C++ 2005 kullanılarak oluşturuldu ve benim projem de şu anda Visual C++ 2005'te.
  • Visual C++ 2010 projemi yükseltme ederken, strstreambuf artık Visual C++ ile 2010.

Teşekkür

cevap

3

nedeni size sağlanan beri 3. parti tescilli kitaplığına bağlantı olabilir fark VS2010 ile VS2005'de yerleşik bir C++ kütüphanesi bağlayamaz strstreambuf kullanımdan kaldırılmış ya da değil, çünkü çalışma zamanı kitaplığı ikilileri yeni derleyici sürümü için değiştirildi. Bunun bir kısmı, C++ standart kütüphanesinin birkaç bölümünün sadece başlık olmak üzere değiştirilmiş olmasıdır.

Bir derleyici ile oluşturulmuş C++ kodunu başka bir derleyici için çalışma zamanı kitaplığı ile bağlamak gerçekten çok kötü bir fikirdir; Gerçekten de, karmaşanın aksi takdirde ortaya çıkacağı gibi, aynı derleyici sürümüyle statik olarak bağlantılı olan her şeyi oluşturduğunuzdan emin olmak istersiniz.

En iyi (yalnızca) umudunuz, söz konusu 3. parti kütüphanesinin tedarikçisinin VS2010 ile oluşturulmuş bir sürümü öksürmesini sağlamaktır.

+0

@ timo-geusch Teşekkürler. Üçüncü taraf tedarikçisinin sonunda kütüphanelerinin yeni bir versiyonunu öksüreceklerinden eminim, ama beklemek zorunda kalmamayı umuyordum. Sadece strstreambuf sınıfına işaret eden ~ 75 linker hatası olduğundan strstreambuf'un problem olduğunu varsaydım. "C++ standart kütüphanesinin birkaç bölümü üzerinde sadece başlığa değiştirildi" hakkındaki yorumunuz ilginçtir. Bu değişikliklerin belgelendiği bir bağlantınız olur mu? Strstreambuf'un onların bir parçası olup olmadığını görmek için onlara göz atabilirim. – ossandcad

+0

MS web sitesinde hangisinin değiştiğini gösteren bir liste olduğunu düşünmüyorum. Sadece başlık sadece "sorun" hakkında biliyorum çünkü farklı koşullar altında gösterebilir; Onlardan bahseden bir sürü bağlantı hatası hatası raporu var ve bence strstreambuf bunlardan biriydi. –

İlgili konular