2012-12-28 31 views
5

Ben visual c++ 6.0 dll projeyi oluşturdu ve benim c# koddan kullanmaktan var. Şimdi dll hata ayıklamak istiyorum ama bunu yapamam.C# projesinden C++ dll nasıl hata ayıklanır?

bunu yapmak için aşağıdaki seçeneği belirleyin:

  • benim visual c++ proje kodunda kırılma noktası koydu.
  • dll oluşturmak ve benim c# projesinin dizinine kopyalayın.
  • Şimdi benim c# proje oluşturmak ve dll (yöntem mükemmel aradığınız) çalışıyor.
  • Şimdi ben dll hata ayıklamak istiyorum.
  • Ben bir blog takip edip c++ projeyi açın ve vc++ den Attach to process seçin.
  • ama, visual c# projesinin çalışan sürecini bulmak mümkün değilim o oysa görev yöneticisi süreci mevcuttur. Benim c# proje çözümde

i iki proje yani

  • web hizmeti sahip web servisleri başlar
  • diğeri webform application olan (i URL'ye erişen sırasında dll yöntemi denir) .

Şimdi benim dll hata ayıklama nasıl bana yardım edin. Çok fazla blog izledim ama hepsi benim durumumda çalışmayan Attaching process yöntemine odaklanıyor. Ne yapmalıyım?

sizin ana program yönetilir çünkü

cevap

9
Sen yönetilmeyen ayıklamayı etkinleştirmek gerekir

, ya senaryoda varsayılan olarak açık değildir .

Sen> Proje> Özellikler> ayıklama sekmesi ile C# projesi yapmak "yönetilmeyen kod hata ayıklamayı etkinleştir" onay kutusunu işaretleyin.

Araçlar> ile bunu Seç düğmesini tıklayarak ek işleme. "Bu kod türlerini ayıkla" radyo düğmesini seçin ve hem Yönetilen hem de Yerel seçeneğini işaretleyin. Süreciniz 64 bitse, yalnızca yerel başvurmanız gerekebilir.

DLL kaynak kodunda bir kesme noktası ayarlayın ve DLL işlevi yürütmektedir C# kodu yazmak emin olun. Bir ara noktayı almada hala sorun yaşıyorsanız, Debug> Windows> Modules'i kullanın ve modül listesinde DLL'yi gördüğünüzden emin olun. Sağ tıklatarak ek sorun giderme bilgisi alın, Sembol Yükü Bilgileri'ni seçin. Hangi hata ayıklayıcının PDB dosyasını aradığı bir izini gösterir.

+0

ben yönetilmeyen hata ayıklama çalıştı ama. İkinci projemde bunu etkinleştirdim ancak ilk proje –

+0

gibi herhangi bir seçenek bulamadı: https://dl.dropbox.com/u/20476478/Untitled.png –

+0

Eğer sakıncası yoksa 5 dakika sohbet edebilir miyiz? –

0

C++ projenize C# çözümünü ekleyebilir ve doğrudan projeye (dll değil) referans ekleyebilirsiniz, sonra DLL'yi kopyalamanız gerekmeyecektir. Bundan sonra sadece C# projenizin normal hata ayıklama (F5) başlatın ve kesme noktaları da C++ projesi için çalışacaktır. Bu şekilde hata ayıklama için çok rahat olacak. Bu tür hata ayıklamayı denedim ve başka ayarları değiştirmedim. i bir tek web hizmeti projesi ve benim çözümde bir formapplication olduğunu söylediği gibi

+0

fakat bunu yapmak için C# projesinde yazılan tüm kod akışını değiştirmem gerekiyor –

+0

Bunun için kod akışını neden değiştirmeniz gerektiğinden emin değilim, sadece DLL referansını Project referansına değiştirmeniz gerekiyor. Ya da bir şey özlüyorum? – SergeyS

+0

evet problem var çünkü görsel C++ projesiyle ilişkili bir .lib dosyası var –