2009-08-06 14 views
5

Görsel temel 6 projesiyle ilgili küçük bir sorunum var. Her şey, IDE 'da düzgün çalışıyor ancak uygulamayı çalıştırdığımda her zaman yürütülebilir çöküyor. Uygulama bir C++ dll ile iletişim kurmak için geri aramaları kullanır. Geri arama başladığında bile bir mesaj kutusu göstermesi kadar basit bir kod başarısız olur.Vb6 uygulaması IDE'de çalışır ancak yürütülebilir dosya çöker

Derleme modunu P-Code olarak değiştirdim ve hala sorun devam ediyor.

Herhangi bir yardım için teşekkür ederiz.

tüm

+0

şekilde yazmanız gerekir herhangi bir hata iletisi görüntülenir mı: İşte CCRP Zamanlayıcılar kütüphane ile bu için kullanılan typelib var? – MarkJ

+0

Hayır, sadece yakın –

cevap

3

Bu, uygulamanızın yürütmekte olduğundan farklı bir iş parçacığında geri aramaların gerçekleşebileceği gibi geliyor. [DÜZENLEME: Jim'in daha önce önerdiği gibi.] Bu durumda, evet, kaboom ise sadece en kısa sürede "dokunmatik" şey OLE ilgili veya çalışma zamanı içine diyoruz. Multimedya zamanlayıcı geri bildirimleriyle aynı hikaye, fwiw ve şüpheliyim ki, eğer böyle bir durumda olduğu gibi biriyle aynı önlemleri almanız gerekecek.

Farklı iş parçacığı geri bildirimleriyle ilgili kısa öykünün, kendinize bir ileti göndermeniz gerekmesidir. Bu, bir yazım öğesi olarak bildirilen PostMessage'ı kullanarak, Err nesnesinin VB tarafından ayarlanmadığını, sonra geri dönüşün geri dönmesini sağlar. Gönderilen mesajın alınmasıyla kendi işlemlerinizi yapıyorsunuz. yardımcı olur

http://vb.mvps.org/tools/files/postmessage.zip

Umut ...

+0

Çok teşekkür ederim Karl, ve cehaletim için üzgünüm ama bu benim ilk görsel temel 6 projem. tlb dosyasını nasıl kullanırım, VB IDE'de bir başvuru eklemeyi denedim, ancak çalışmaz ve bir struct veya class tipini postMethod'a iletebilirim çünkü geri dönüş bana 4 değer döndürüyor. –

0

kod IDE ile aynı konumdan yürütülüyor mi teşekkür ederiz? Muhtemelen bir referans sorun ve DLL'yi yeniden kaydetmeniz gerekiyor.

Bir dağıtım paketi, her şeyin yüklü olduğundan emin olmalısınız.

+0

yea aynı konum, aslında aynı dll sadece ince –

+0

diğer çağrıları geç veya erken bağlayıcı mısınız? Ayrıca aşağıdaki yorumlar da doğru ... nesnenin çökmesine/çağrılmasına yol açan kod segmentinin yayınlanması güzel olurdu. – RiddlerDev

1

Kim kime geri dönüyor? Bize biraz kod göster.

IDE gerçek sorunları maskeleyebilir, bu nedenle yalnızca oradan çalışabilmeniz, ne yaptığınızın desteklendiğini garanti etmez.

Geri aramalarda sık karşılaşılan bir sorun, VB6 çalışma zamanının thread-safe olmamasıdır, bu yüzden başka bir thread VB kodunuza geri dönüyorsa, çalışma zamanı benzeri erişim dizelerini veya nesnelerini çağıracak hiçbir şey yapamazsınız.

Bu sorunlardan bazılarına dair bazı yollar var, ama bence önce daha fazlasını bilmeliyiz.

0

birkaç soru:

  1. o geliştirilmiştir aynı PC'de çalıştırılabilir veya farklı biri mi?
  2. Dosya bir bildirim dosyası kullanıyor mu? Eğer öyleyse, ana bilgisayar XP temalarını çağırır mı?
  3. Ayrıca, manifest kullanılıyorsa, OCX dosyaları için SXS kullanımını gösterir mi?
İlgili konular