VC + + 2008 Windows 7 üzerinde çalışır ama XP yapılan C + + EXE

4 Cevap php

Ben aslında bir PE C + + EXE içine PHP 5.3 derler eski bir proje (sadece <5.1 ile çalışır) canlandırılması üzerinde çalışıyorum. Ben çoğu uygulamalar için sadece 2 DLL dosyaları ve 1 exe ile birden fazla Windows 7 bilgisayarlarda iyi really çalışmaya ilginiz aldık! Ne yazık ki, XP alıyorum:

Uygulama yapılandırması doğru olmadığından uygulama başlatılamadı

Ben boşuna Microsoft Visual C + + 2008 yeniden dağıtılabilir paketi yüklü. Ben de exe olarak aynı dizine msvcm90.dll, msvcr90.dll, Msvcp90.dll kopyaladığınız. Bu da işe yaramadı.

Ben sadece XP üzerinde çalışmak için XP üzerinde projeyi derlemek gerekir mi?

PHP gerçekten iyi değilim, ancak C benim işim değil, ben derleyici belirgin bir şey eksik varsayalım.

EDIT: When I compile with just Multi-threaded (/Mt) I get this:

MSVCRT.lib(MSVCR90.dll) : error LNK2005: _fflush already defined in 
LIBCMT.lib(fflush.obj)
MSVCRT.lib(MSVCR90.dll) : error LNK2005: _malloc already defined in LIBCMT.lib(malloc.obj)
MSVCRT.lib(MSVCR90.dll) : error LNK2005: _free already defined in LIBCMT.lib(free.obj)
LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library
out/console_debug.exe : fatal error LNK1169: one or more multiply defined symbols found

4 Cevap

Eğer herhangi bir eksik bağımlılıkları bulabilirsiniz görmek için XP Dependency Walker kullanmayı deneyin.

Ayrıca Olay Görüntüleyicisi kontrol edin. Ve yayın modunda uygulama bina emin olun.


DWMAPI.DLL bir bağımlılık gösteren Bağımlılık Walker genellikle IE7 ile bir XP kutusunu mshtml.dll bir bağımlılık olması neden olabilir yanlış raporlama, olduğunu. Eğer Olay Görüntüleyicisi kontrol ettin mi?

Deftere yapı hataları / MT bayrağıyla inşa DEĞİLDİR kütüphanelere bağlıyoruz öneririz. Eğer çözüm her şeyi yeniden emin olun; Senin 2 DLL,. EXE ve aynı bayrağı ile herhangi bir statik kütüphaneler, siz de dll kendi varsayarak.

Eğer uygulama dizininde bildirim dosyaları var mı? Eminim onlar orada yapmak ve DLL yerlere doğru başvurmak için tavsiye ederim. Bu referans bir göz atın:

http://msdn.microsoft.com/en-us/library/ms235342%28VS.80%29.aspx

(/ MT) Çok parçacıklı> - Project / Properties / Configuration Properties / C / C + + / Code Generation / Runtime Library denediniz mi?

XP makinede VC2008 redistributables takmayı deneyin.