2008-08-02 4 views
31

Günlük çalışmalarımın bir kısmı eski VB6 uygulamalarını sürdürmek ve genişletmektir. C/C++ dilinde ortak bir motor yazılır ve VB6, performansı artırmak için bu işlevleri kullanır.VB6 IDE'de çalışırken bir COM denetimi kaldırma IDE

Eşzamansız programlama söz konusu olduğunda, bir C arayüzü yeterli değildir ve VB6'ya olayları tetiklemek için COM denetimlerine güveniriz.

Sorun şu ki, VB6'da denetimi kaydettiğimde, VB bu denetimi belleğe yükler ve VB6 IDE'yi çıkıncaya kadar indirmez. Denetim tüm zaman yüklenirken, DLL dosyası kilitli olduğundan, VC6 içinde yeniden derleyemiyorum.

Bulduğum bir çözüm, denetimin VB'de etkinleştirilmemesi, ancak denetimimin tam adıyla CreateObject() kullanmasıdır. Sorun şu ki, kontrolümü bir Nesne olarak ilan etmem gerekiyor çünkü VB6 kullanıyorum kullandığım arayüzden hiçbir şey bilmiyor ve ben bir IntelliSense'e erişimim yok.

VB6'ya uygulamayı bıraktıktan sonra veya doğrudan IDE'de denetimleri kaldırmak için nasıl söyleyebilirim?

cevap

27

VB6'yı kontrolu boşaltmaya zorlamanın iyi bir yolu olmadığından eminim. İşte

yerine VC altında Visual C ve Visual Basic yan-yana, koşmak VB6 çalışan ... Ben böyle yapar: VC

  1. Yük kadar
  2. açın COM içeren proje vb
  3. Düzen, değişim, nesneleri VC
  4. ,
  5. Şimdi sadece vurmak VB6 çalışma alanını yüklemek için uygun komut satırı argümanları ile VB6.exe olmak Çıktı yürütülebilir ayarlamak F5 VB6 IDE'yi başlatmak ve VB6 projenizi yüklemek için
  6. COM kodunu tekrar değiştirmek istediğinizde, VB6.EXE'den çıkın, değişikliklerinizi yapın ve tekrar F5'e basın. Çalışma alanınızı kaydettiğiniz sürece, VB6 hangi pencereleri açtığınızı ve tüm proje ayarlarınızı hatırlayacaktır. Bu yöntemin

Avantajları:

  • COM nesnesi kesme noktaları ayarlayabilirsiniz ve hata ayıklama Bunu mutlulukla aynı anda C ve VB debug tam kaynak ayıklayıcısını
  • kullanılarak
  • VB6 çalışırken, her zaman COM dll
+1

'un en son sürümüne sahiptir. Bu çok akıllıdır, bunu yapmaya çalışacağım. Şimdi eski çerez tabanlı hesabımın yeni OpenId tabanlı hesabımla birleştirilip birleştirilemeyeceğini merak ediyorum. Bu cevabı, yanıt olarak işaretleyebilirim ... –

+2

Bu, VB'den başka IDE'lerle de çalışır. Bunu Delphi/VB6 ile başarıyla yaptım. –