Makale numarası: 922279 - Son Gözden Geçirme: 07 Şubat 2007 Çarşamba - Gözden geçirme: 1.1

Hata: Visual C++ programı çalıştırdığınızda bir hata iletisi execve işlevi veya wexecve işlevi Visual Studio 2005'te çağırır: "düzgün olarak başlayamadı uygulama (0xc0150004)"

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.

Bu Sayfada

Hepsini aç | Hepsini kapa

Belirtiler

Microsoft Visual Studio 2005'te execve işlevi veya wexecve işlevi çağıran bir Microsoft Visual C++ programı çalıştırdığınızda aşağıdaki hata iletisini alabilirsiniz:
Uygulama düzgün olarak başlayamadı (0xc0150004). Sonlandırmak için Tamam düğmesini tıklatın.

Neden

Bu sorun, aşağıdaki koşullar doğru olduğunda oluşur:
  • Visual C++ ana program execve işlevi ya da yüklenemedi ve bir alt işlemi çalıştırmak için wexecve işlevi çağırır.
  • Execve işlevi veya işlev wexecveenvp parametresi boş bir dize içerir.

Çözüm

Bu sorunu gidermek için <a0></a0>, execve işlevi veya işlev wexecveenvp parametresi boş bir dize içerdiğinden emin olun.

Durum

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

Daha fazla bilgi

Aşağıdaki adımlar "Belirtiler" bölümünde açıklanan sorunu yeniden oluşturma. Ayrıca, adımlar, "Çözüm" bölümünde açıklanan yöntemi kullanarak bir sorunu gidermek nasıl gösterilmektedir.

Sorunu Yeniden Oluşturma Adımları

  1. T.cpp adında bir üst Visual C++ projesi oluşturun.
  2. Aşağıdaki kod örneği eklemek T.cpp.
    #include <stdio.h>
    #include <process.h>
    #include <tchar.h>
    #include <stdlib.h>
    
    TCHAR * args1[] =
    {
     _T("child.exe"),
     0
    };
    
    TCHAR * envs2[] = 
    {
     _T(""),
     0
    };
    
    int main() {
     if ( _execve( "child.exe", args1, envs2   ) == -1 )
      {
       printf("failed\n");
       return 1;
      }
  3. Child.cpp adlı bir alt Visual C++ projesi oluşturun.
  4. Aşağıdaki kod örneği Child.cpp.
    #include <stdio.h>
    
    int main() {
     printf("hello\n");
    }
    
    
  5. Derleme ve T.cpp ve Child.cpp çalıştırın. "Belirtiler" bölümünde değinilen hata iletisini alırsınız.
Sorunu yeniden sonra oluşan bir sorunu gidermek için <a0></a0>, aşağıdaki adımları izleyin:
  1. T.cpp. aşağıdaki değeri boş dize yerine envs2 [] parametresi yapıştırın:
    "myenv=A"
    T.cpp şimdi, aşağıdaki kod örneği benzer.
    #include <stdio.h>
    #include <process.h>
    #include <tchar.h>
    #include <stdlib.h>
    
    TCHAR * args1[] =
    {
     _T("child.exe"),
     0
    };
    
    TCHAR * envs2[] = 
    {
     _T("myenv=A"),
     0
    };
    
    int main() {
     if ( _execve( "child.exe", args1, envs2   ) == -1 )
      {
       printf("failed\n");
       return 1;
      }
  2. Derleme ve T.cpp çalıştırın. Program düzgün çalışır.

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual Studio 2005 Professional
  • Microsoft Visual Studio 2005 Standard Edition
  • Microsoft Visual Studio 2005 Team System Architect Edition
  • Microsoft Visual Studio 2005 Team System Developer Edition
  • Microsoft Visual Studio 2005 Team System Team Foundation:
  • Microsoft Visual Studio 2005 Team System Test Edition
Anahtar Kelimeler: 
kbmt kbtshoot kberrmsg kbexpertiseinter kbbug KB922279 KbMttr
Otomatik TercümeOtomatik 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:922279  (http://support.microsoft.com/kb/922279/en-us/ )