2013-03-05 13 views
5

Gerçekten kafamı bu duvardaki atasözüne karşı çarpıyorum.DLL VS2010'daki Modüller Listesinden Eksik

Hem C# hem de C++ kod projeleri içeren bir çözüm var.

Bu projede derlenen C++ DLL'lerini, C# ile P/Invoke aracılığıyla derlerim. Problem yok. *.sln dosyasının yanı sıra C++ ve C# dosyaları aracılığıyla gereken tüm hata ayıklayıcı ayarları, bilgimden en iyi şekilde doğru şekilde ayarlandı. Not: Sık sık P/Invoked C++ kodunu sorun olmadan hata ayıklayabiliyorum! Doğal olarak, simgelerin yüklenmediğini düşünmüştüm - yine de, modüller penceresini açtıktan sonra, adım atmaya çalıştığım DLL dosyasının bile listelenmediğini keşfettim! C# programımdaki işlevi çalıştırmak gerçekten DLL'yi kullanır (doğru çıktıyı alırım), ancak Modüller penceresini izlerken, DLL hala görünmez.

Neler olduğu hakkında bir fikri olan var mı?


tl; dr

I ayıklama P/çağrılan C++ ile deneyim adil bir miktar vardır. Ancak, hata ayıklamak istediğim DLL Modüller listesinde bile görünmüyor (bu yüzden VS hata ayıklayıcısının varoluşundan tamamen habersiz gibi görünüyorsa, bunu gerçekleştiremiyorum).

+0

Senaryonuzu nasıl yeniden üretebiliriz? –

+0

"Karışık mod" hata ayıklaması yapmak için ayarlanmış mı? I.e listelenen veya listelenmeyen yerel (i.e C++ modülleri) hiçbiri değil, sadece hata ayıklamaya çalıştığınız değil? –

+0

David: Ne yazık ki, bu senaryoyu kolayca yeniden oluşturamıyorum, çünkü bu Modüller listesinden hiç bir zaman eksik olan bir zamanım oldu! Matt: C++ projelerinde, Attach Evet olarak ayarlanmış karma mod hata ayıklaması için ayarlandım. C# projesi kapsamında, C++ projeleri bağımlılıklar olarak listelenmiştir. Ayrıca C# projesi içinde Yönetilmeyen kod hata ayıklamayı etkinleştir. Sorun şu ki, kod çalıştırıldığında, Debug> Modules ekranında bile, C++ disklerinin hiçbiri listelenmez. Daha önce bunu gördünüz mü? Şimdiye kadar verdiğiniz ipuçları için teşekkür ederiz! –

cevap

8

Tahminimce, yönetilmeyen kod için hata ayıklama uygulamanızın olmaması. Başlangıç ​​projesinin Özellikler-> Hata Ayıklama sekmesine gidin. "Yönetilmeyen kod hata ayıklamasını etkinleştir" seçeneğini işaretleyin.

+0

Merhaba Matt! Bahşiş için teşekkürler! Yönetilmeyen kod hata ayıklamayı etkinleştir. –

+1

NB: Bu, gerçek başlangıç ​​projesinde veya * .exe'nin kendisinde ayarlanması gerekir (ki bu artık çözülmeye çalışılırken çok fazla olmasa da, geriye dönük olarak gözle görülür gibi görünüyor), özel C# projesi P/Invoking C++. –