2013-05-14 27 views
7

Uygulamamda üçüncü taraf bir DLL kullanmam gerekiyor. DLL bir 32-bit ve kullandığım sistem 64-bit işletim sistemidir.64 bit sistemde 32 bit dll kullanma 0x8007000B Hatası

Ben IIS 7.5'da

[DllImport("Sample.dll", 
    EntryPoint = "Add", 
    CharSet = CharSet.Ansi, 
    CallingConvention = CallingConvention.StdCall)] 
    public static extern int Add(int iA, int iB); 

aşağıdaki gibi benim DotNet uygulama (çerçeve-4.5) 32 bit DLL İthal var - Ben "Doğru" olarak "Enable 32 bit Uygulama" belirledik.

Ayrıca Compiler Manager'ı - X86, x64 ve Any CPU'lar olarak ayarlamayı denedi.

Ama bu sorunun nasıl çözüleceği

An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B) 

aynı Hata bütün girişim sonuçları ......

+0

size Aakash

+0

olası yinelenen cevabı burada bulabilirsiniz olabilir [VS 2010 Yerel IIS'yi 32 bit kipte çalıştırma] (http://stackoverflow.com/questions/10711498/how-to-run-vs-2010-local-iis-in-32-bit-mode) –

+0

bkz. Bu gönderi hakkında 0x8007000B Hatası http://stackoverflow.com/questions/18007967/net-framework-error-hresult-0x8007000b/36353971#36353971 – JinSnow

cevap

0

sizin yürütülebilir için Configuration Manager içinde Yapı onay kutusunu işaretleyin ne CPU için çalışıyor, muhtemelen orada herhangi bir CPU var. Daha sonra, Visual Studio'yu yeniden başlatın ve derlemede hata ayıklayamadığından şikayet etmeyin.

Projeyi sağ tıklayın ve Özellikler-> Derleme -> Gelişmiş Derleme Seçenekleri -> Hedef CPU'yu açın: Oluşturduğunuz "Platform" ile eşleşmelidir. Yani, "Herhangi bir CPU" oluşturuyorsanız o zaman "Hedef CPU", "Herhangi Bir CPU" demelidir. Tüm Platformlarınızı aktif hale getirerek bu ayarı gözden geçirin ve bu ayarı kontrol edin.

IIS 7'de (ve/veya 64 bit işletim sistemi) 32 bit uygulamaları çalıştırmayı denerseniz, aynı hatayı alırsınız. Yani, IIS 7'den, uygulamaların uygulama havuzuna sağ tıklayın ve "gelişmiş ayarlar" a gidin ve "32-Bit Uygulamaları Etkinleştir" 'i "DOĞRU" olarak değiştirin.

Web sitenizi yeniden başlatın ve çalışması gerekir.

+0

Merhaba. 1. paragrafta ve 3. paragrafta bahsettiğim her şeyi yaptım. Ancak aynı hatayla sonuçlanır ... Derleyici Seçeneğini görmeye çalıştığınızda, Özellikler'in "Compile-> Gelişmiş Derleyici Seçenekleri" – Renuka

+0

gibi bir seçeneği yoktur, belirli bir projeye bağlıdır, uygulamanız tam olarak nedir? – 4pie0

2

IIS 7'de (ve/veya 64 bit işletim sistemi) 32 bit uygulamaları çalıştırmayı denerseniz, aynı hatayı alırsınız. Yani, IIS 7'den, uygulamaların uygulama havuzuna sağ tıklayın ve "gelişmiş ayarlar" a gidin ve "32-Bit Uygulamaları Etkinleştir" 'i "DOĞRU" olarak değiştirin.

Web sitenizi yeniden başlatın ve çalışması gerekir.

0

64 bitlik bir makinede 32 bitlik bir dll çalışırken ve DllImport yöntemini kullanırken ve aradığım şey için uygun yeniden dağıtılabilir kitaplığı yüklemeyi unuttuğumda bu sorunu yaşadım. Çağrılan bir kütüphanenin buna bir bağımlılığı olduğunda ve ayrıca bir .NET kütüphanesinden bir Fortran fonksiyonunu çağırırken Intel Visual Fortran'ı yeniden dağıtılabilir olarak yüklemem gerektiğinde vesilesiyle görsel C++ 'yi yeniden dağıtılabilir hale getirmem gerekiyordu.

İlgili konular