Giriş
Bu makalede, bir sorunu birC çalışma zamanı "atexit" işlevi Windows Embedded Compact 7'de aynı anda birden çok iş parçacığı çağrı n özel durum oluşur. Bu sorunu gidermek bir güncelleştirme kullanılabilir. Bu güncelleştirmeyi yüklemeden önce bu ürün için daha önce yayımlanmış tüm güncelleştirmeleri yüklü olmalıdır.
Belirtiler
Birden çok iş parçacığı aynı anda Windows Embedded Compact 7 C çalışma zamanı atexit işlevini çağırdığınızda bir özel durum ortaya çıkabilir. Atexit işlevi çağıran kodu sıralanmış değildir veya atexit işlevi derleyici tarafından eklendiğinde, özel durum oluşur.
Neden
C çalışma zamanı atexit işlevi iş parçacığı açısından güvenli olmadığı için bu sorun oluşur. Bu nedenle, işlev kullandığı bellek tablosu bozulmuş.
Çözüm
Yazılım güncelleştirme bilgileri
Windows Embedded Compact 7 aylık güncelleştirmesi (Haziran 2017) adlı desteklenen bir yazılım güncelleştirmesi Microsoft'tan edinilebilir.
Not: Bu Windows Embedded Compact 7 aylık güncelleştirmesi aşağıdaki Microsoft Download Center Web sitesinden yüklenebilir:
Önkoşullar
Bu güncelleştirme yalnızca bu ürün için daha önce yayımlanan güncelleştirmelerin tümü de yüklüyse desteklenir.
Yeniden başlatma gereksinimi
Bu güncelleştirmeyi yükledikten sonra platformun tamamı için temiz bir yapı oluşturma gerçekleştirmeniz gerekir. Bunu yapmak için aşağıdaki yöntemlerden birini kullanın:
-
Yapı menüsünde, Temiz Solution' ı tıklayın ve Build Solution' ı tıklatın.
-
Yapı menüsünde, Yeniden Solution' ı tıklayın.
Bu yazılım güncelleştirmesini uyguladıktan sonra bilgisayarı yeniden başlatmanız gerekmez.
Güncelleştirme değiştirme bilgileri
Bu güncelleştirme başka hiçbir güncelleştirmenin yerini almaz.
Dosya bilgileri
Tam dalga yayın olarak. Neredeyse tüm ikili dosyaları bu sürüm tarafından etkilenir.
Aşağıdaki kaynak dosyaları bu sürüm tarafından etkilenir::
private\winceos\COREOS\core\corelibc\crtw32\startup\cexit.cpp
private\winceos\COREOS\core\corelibc\crtw32\startup\onexit.cDaha fazla bilgi
Bir çok iş parçacıklı ortamda atexit işlev tablosu olmayan iş parçacığı güvenliği nedeniyle başka bir atexit çağrısı tarafından bozulabilir. Bu Bellek Bozulması ve özel durumlara neden olabilir. Atexit işlevi, programdan çıkar veya .dll kaldırılırken yürütülen bir yordam kaydetmek için kullanılıyor. İş parçacığı güvenliği kusur değişikliğinin bu çıkış yordamının ve çıkış işlevi tabloların bozulmasına neden olabilir.
Başvurular
Microsoft'un yazılım güncelleştirmelerini açıklamak için kullandığı terminoloji hakkında ek bilgi edinin.