Düzeltme: bir tanıtıcı Visual C++ .NET 2003'te CRT _popen işlevini çağırdığınızda uygulama sızdırıyor

Makale çevirileri Makale çevirileri
Makale numarası: 892086 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Belirtiler

Microsoft Visual C++ .NET 2003'te, kendi uygulama sızıntıları C çalışma zamanı (CRT) _popen işlevi bir tanıtıcı işlevi çağıran her kullandığınızda.

Neden

CRT _popen işlevi için uygulama performansını artırmak için <a0></a0>, Visual C++ .NET 2003'te değiştirildi. CRT _popen işlevi, CRT _spawnl işlevi yerine artık WinAPI CreateProcess</a1> işlevini kullanır. Tanıtıcı sızıntısı Visual C++ .NET 2003'te bir hata nedeniyle oluşur. Bu hata, açık kalmasını PROCESS_INFORMATION yapısının hThread tanıtıcı alanı neden olur.

Çözüm

Desteklenen bir düzeltme Microsoft'tan edinilebilir, ancak yalnızca bu makalede anlatılan sorunu düzeltmesi amaçlanmıştır. Düzeltmeyi yalnızca bu sorunla karşılaşan sistemlere uygulayın. Bu düzeltmeye ek sınama uygulanabilir. Bu nedenle, bu sorundan ciddi bir şekilde etkilenmiyorsanız, bu düzeltmeyi içeren bir sonraki Visual Studio .NET 2003 hizmet paketini beklemenizi öneririz.

Bu sorunu hemen çözmek için, düzeltmeyi edinmek üzere Microsoft Ürün Destek Hizmetleri'ne başvurun. Microsoft Ürün Destek Hizmetleri'nin telefon numaralarının tam listesi ve destek ücretleriyle ilgili bilgi için, aşağıdaki Microsoft Web sitesini ziyaret edin:
http://support.microsoft.com/contactus/?ws=support
Not Özel durumlarda, Microsoft Destek Uzmanı özel bir güncelleştirmenin sorununuzu çözümleyeceğini belirlerse, destek aramaları için normalde uygulanan ücretler iptal edilebilir. Ek destek sorularına ve söz konusu güncelleştirme için geçerli olmayan sorunlara normal destek ücretleri uygulanır.

ÖNKOŞULLAR

Herhangi bir önkoşul bulunmamaktadır.

Yeniden başlatma gereksinimi

Bu düzeltmeyi yükledikten sonra bilgisayarınızı yeniden başlatmanız gerekmez.

Düzeltme Değiştirme Bilgileri

Bu düzeltme başka bir düzeltmenin yerini almaz.

DOSYA BİLGİLERİ

Bu düzeltmenin İngilizce sürümü, aşağıdaki tabloda listelenen dosya özniteliklerine (veya daha yeni dosya özniteliklerine) sahiptir. Bu dosyaların tarihleri ve saatleri Koordinatlı Evrensel Saat'e (UTC) göre listelenir. Dosya bilgilerini görüntülediğinizde yerel saate dönüştürülür. UTC ve yerel saat arasındaki farkı bulmak için <a0></a0>, Denetim Masası'ndaki Tarih ve Saat aracında saat dilimi sekmesini kullanın.
   Date         Time   Version            Size    File name
   --------------------------------------------------------------
   03-Feb-2005  02:57                     13,858  A_map.c
   03-Feb-2005  03:27                    363,744  Eh.lib
   03-Feb-2005  02:57                     10,456  Io.h
   06-Feb-2004  19:29                      4,246  Ios.cpp
   03-Feb-2005  03:30                  2,707,628  Libc.lib
   03-Feb-2005  03:34                  3,023,492  Libcd.lib
   03-Feb-2005  03:31                  2,937,528  Libcmt.lib
   03-Feb-2005  03:36                  3,304,810  Libcmtd.lib
   03-Feb-2005  03:30                  3,601,372  Libcp.lib
   03-Feb-2005  03:35                  4,433,774  Libcpd.lib
   03-Feb-2005  03:32                  3,651,664  Libcpmt.lib
   03-Feb-2005  03:36                  4,449,888  Libcpmtd.lib
   03-Feb-2005  04:11  7.10.4353.0       499,712  Msvcp71.dll      
   03-Feb-2005  03:37  7.10.4353.0       765,952  Msvcp71d.dll     
   03-Feb-2005  04:11  7.10.4353.0       348,160  Msvcr71.dll      
   03-Feb-2005  03:37  7.10.4353.0       544,768  Msvcr71d.dll     
   03-Feb-2005  02:58                     17,400  Popen.c
   03-Feb-2005  02:57                      9,948  Read.c
   03-Feb-2005  16:00                    202,240  Vc_user_crt71_rtl_x86_---.msm
   03-Feb-2005  16:00                    151,040  Vc_user_stl71_rtl_x86_---.msm

Durum

Microsoft, "Geçerli Olduğu Ürünler" bölümünde listelenen Microsoft ürünlerinde bu sorunun olduğunu onaylamıştır.

Daha fazla bilgi

Uygulamanız için bir tanıtıcı sızıntısı olduğunu doğrulamak için <a0></a0>, Windows Görev Yöneticisi'nde Handles sayısını izler.

Oluşturma ve Visual C++ Win32 Konsolu'nu proje aşağıdaki kodu çalıştırın, örneğin, Handles sayısı Windows Görev Yöneticisi'nde artırmak devam edecektir:
// Testpopen.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <stdio.h>
#include <conio.h>


int _tmain(int argc, _TCHAR* argv[])
{
	FILE * pPipe = NULL;
	char	buffer[128] = {0};

	while (!kbhit())
	{
		pPipe = _popen("dir *.* /s", "r");

		if (pPipe != NULL)
		{
			printf(_T("Pipe opened at 0x%08x\n"), (unsigned long)pPipe);

			while (!feof(pPipe))
			{
				if (fgets(buffer, 128, pPipe))
					printf(buffer);
			}

			printf("Pipe closed (%d)\n", _pclose(pPipe));			
		}
	}	

	return 0;

}

Ek bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
824684Microsoft yazılım güncelleştirmelerini açıklamak için kullanılan standart terminolojinin açıklaması

Özellikler

Makale numarası: 892086 - Last Review: 15 Mayıs 2006 Pazartesi - Gözden geçirme: 2.2
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual C++ .NET 2003 Standard Edition
  • Microsoft Visual Studio .NET 2003 Professional Edition
  • Microsoft Visual Studio .NET 2003 Enterprise Developer
  • Microsoft Visual Studio .NET 2003 Enterprise Architect
  • Microsoft Visual Studio .NET 2003 Academic Edition
Anahtar Kelimeler: 
kbmt kbqfe kbbug kbfix kbprb kbhotfixserver KB892086 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:892086

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