Delphi çalışma anı exe durdurma hatası
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 8
- Kayıt: 26 Oca 2015 11:58
Delphi çalışma anı exe durdurma hatası
Merhaba Arkadaşlar
Delphide yaptığım uygulama da şöyle bir hata almaktayım
" Proje.exe çalışmayı durdurdu."
Uygulama sağlıklı bir şekilde açılıyor.Daha sonra işlem yaparken bu hatayı veriyor.Uygulama Windows Xp sp3 Borland Delphi 7 de yazıldı ve orada herhangi bir hata vermemektedir.Ancak uygulamayı Windows 7 bilgisayara geçirince bu hatayı vermektedir.(Windows Register yapıldı deplhi için) Kodsal bir sorun olduğunu düşünmüyorum. İzinlerle de ilgili de değil tamamen kontrol ettim.
Daha sonra bir tane windows 7 bilgisayara delphi 7 kurdum uygulamayı derledim.Kurcalamalardan sonra nihayet uygulama bu bilgisayarda sağlıklı bir şekilde çalıştı.Ancak uygulamayı başka bir windows 7 ve windows 8 pclerine attım test etmek için.Ancak buralarda çalışmayı durdurdu hatası verdi.Yaptığım işlem ise döküman taramak.Tarayıcı ile dökümanları tarıyor ve belirttiğim pathe kaydediyor ancak tam dökümanları ekrana gösterecek çalışmayı durdurdu hatası veriyor.(Bu işlemler kendi delphi kurulu olan windows 7 pc'm de ve xp de çalışıyor)
bilgisi olan arkadaşlar yadımcı olursa sevinirim.
Delphide yaptığım uygulama da şöyle bir hata almaktayım
" Proje.exe çalışmayı durdurdu."
Uygulama sağlıklı bir şekilde açılıyor.Daha sonra işlem yaparken bu hatayı veriyor.Uygulama Windows Xp sp3 Borland Delphi 7 de yazıldı ve orada herhangi bir hata vermemektedir.Ancak uygulamayı Windows 7 bilgisayara geçirince bu hatayı vermektedir.(Windows Register yapıldı deplhi için) Kodsal bir sorun olduğunu düşünmüyorum. İzinlerle de ilgili de değil tamamen kontrol ettim.
Daha sonra bir tane windows 7 bilgisayara delphi 7 kurdum uygulamayı derledim.Kurcalamalardan sonra nihayet uygulama bu bilgisayarda sağlıklı bir şekilde çalıştı.Ancak uygulamayı başka bir windows 7 ve windows 8 pclerine attım test etmek için.Ancak buralarda çalışmayı durdurdu hatası verdi.Yaptığım işlem ise döküman taramak.Tarayıcı ile dökümanları tarıyor ve belirttiğim pathe kaydediyor ancak tam dökümanları ekrana gösterecek çalışmayı durdurdu hatası veriyor.(Bu işlemler kendi delphi kurulu olan windows 7 pc'm de ve xp de çalışıyor)
bilgisi olan arkadaşlar yadımcı olursa sevinirim.
Re: Delphi çalışma anı exe durdurma hatası
Tahminim kütüphanelerde sorun olabilir. Release yaptiysan tam yüklenmemiş olabilir veri tabanında alanlarla ilgili sorunlatdada bu hatayi verebiliyor bunlar sadece birer varsayim
gideceği limanı bilmeyen gemiye hiçbir rüzgar yardım edemez...
Kod: Tümünü seç
Delete from hayat where cins="çıkarcılar"
-
- Üye
- Mesajlar: 8
- Kayıt: 26 Oca 2015 11:58
Re: Delphi çalışma anı exe durdurma hatası
Hocam veritabanı kullanmıyorum.Sadece dokuman tarayıcının dll leri var onları import ediyorum uygulamaya.
Sade bir ekran zaten dokümanı tara ekrana göster.Ama tuhaf olan bu uygulamanın delphi kurulu olan bilgisayarda çalışması diğerlerinde exe çalışma hatasına düşmesi
3-4 gündür uğraşıyorum denemediğim yöntem kalmadı.
Sade bir ekran zaten dokümanı tara ekrana göster.Ama tuhaf olan bu uygulamanın delphi kurulu olan bilgisayarda çalışması diğerlerinde exe çalışma hatasına düşmesi
3-4 gündür uğraşıyorum denemediğim yöntem kalmadı.
Re: Delphi çalışma anı exe durdurma hatası
Programınızın düzgün olduğuna eminseniz konuya windows cephesinden bakın.
Windows giderek daha sertleşiyor.
Kullanıcı hakları, uygulama sınırları, yetkiler... Aştığına karar verdiği anda kapatıyordur.
Import ettiğiniz tarayıcı dll leri eskilerde kalmış ve kernel de başvurduğu adreslerin yerinde yeller esiyor olabilir.
Windows giderek daha sertleşiyor.
Kullanıcı hakları, uygulama sınırları, yetkiler... Aştığına karar verdiği anda kapatıyordur.
Import ettiğiniz tarayıcı dll leri eskilerde kalmış ve kernel de başvurduğu adreslerin yerinde yeller esiyor olabilir.
... Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!
Mustafa Kemal Atatürk...
Mustafa Kemal Atatürk...
-
- Üye
- Mesajlar: 8
- Kayıt: 26 Oca 2015 11:58
Re: Delphi çalışma anı exe durdurma hatası
Hocam dll ler eğer sıkıntı olacaksa normalde de çalışmaz.Yani delphi kurulu bilgisayayarda.
Şöyle anlatayım, işlem gerçekleşiyor, dokümanlar taranıyor ve istediğim pathe atıyor.Sorun bundan sonra tam başlıyor.Aniden uygulama Proje.exe çalışmayı durdurdu hatası veriyor.Bide ben bu taraycıcı dll lerini Tbl formatına çevirip öyle aldım.Ne yapacağımı şaşırdım valla.
Şöyle anlatayım, işlem gerçekleşiyor, dokümanlar taranıyor ve istediğim pathe atıyor.Sorun bundan sonra tam başlıyor.Aniden uygulama Proje.exe çalışmayı durdurdu hatası veriyor.Bide ben bu taraycıcı dll lerini Tbl formatına çevirip öyle aldım.Ne yapacağımı şaşırdım valla.
Re: Delphi çalışma anı exe durdurma hatası
-Programınızın hata akışını dosyaya yazacağınız bir fonksiyon planlayın.
-Ana formunuzun OnCreate si içinde
Application->OnException = LogFonksiyonunuz;
tanımlamasını yapın,
-Özellikle hata üreten kodlarınızı try __finally bloğunda işleyin.
catch kısmı kullanmayın.. o kısım zaten log fonksiyonunuza gönderilecek..
Dolayısıyla dosyaya yazılacağından hataları daha sağlıklı takip etme şansı bulursunuz.
Windows hata bile vermeden program sonlandırıyorsa, programınız büyük yanlışlıklar yapıyordur.
Benim neredeyse her programımda kullandığım demirbaştır hata logları..
Aynı dosya (hatalog.txt) birden fazla formda kullanılmıyorsa Birim kısmındaki ikinci %s nin anlamı kalmıyor. (this->UnitName().. bununla birlikte..)
Çok eskiden bir programda tarayıcı kullanmıştım.
Kodak kütüphanesi kullanıyordum. Yazıcı çıktılarında gerek kalmadığından zamanla kaldırdım gitti..
Şimdi sizin için baktım.. eski kodlar duruyor ama kullandığım kütüphane yok malesef.
Basit te bir kullanımı var..
İlginizi çekerse sadece kullandığım kısmı paylaşabilirim. Çünkü kütüphaneleri bulamadım.
Hatırladığım Windows ME ye kadardı sanırım.. windows ile birlikte geliyordu. Sonra kaldırdılar.
-Ana formunuzun OnCreate si içinde
Application->OnException = LogFonksiyonunuz;
tanımlamasını yapın,
-Özellikle hata üreten kodlarınızı try __finally bloğunda işleyin.
catch kısmı kullanmayın.. o kısım zaten log fonksiyonunuza gönderilecek..
Dolayısıyla dosyaya yazılacağından hataları daha sağlıklı takip etme şansı bulursunuz.
Windows hata bile vermeden program sonlandırıyorsa, programınız büyük yanlışlıklar yapıyordur.
Benim neredeyse her programımda kullandığım demirbaştır hata logları..
Kod: Tümünü seç
void __fastcall TFrmList::Hataci(TObject* Sender, Exception* Hata)
{
TDateTime thTarih = Now();
String sRapor = Format(L"Birim:%s-%s \tTip:%s \t Detay:%s", ARRAYOFCONST((thTarih.FormatString("dd.mm.yyyy hh:nn:ss"), this->UnitName(), Hata->ClassName(), Hata->Message)));
ofstream out(L".\\hatalog.txt", ios::app);
out << AnsiString(sRapor).c_str() << std::endl;// "\r\n";
}
void __fastcall TFrmList::FormCreate(TObject *Sender)
{
Application->OnException = Hataci;
......
Çok eskiden bir programda tarayıcı kullanmıştım.
Kodak kütüphanesi kullanıyordum. Yazıcı çıktılarında gerek kalmadığından zamanla kaldırdım gitti..
Şimdi sizin için baktım.. eski kodlar duruyor ama kullandığım kütüphane yok malesef.
Basit te bir kullanımı var..
İlginizi çekerse sadece kullandığım kısmı paylaşabilirim. Çünkü kütüphaneleri bulamadım.
Hatırladığım Windows ME ye kadardı sanırım.. windows ile birlikte geliyordu. Sonra kaldırdılar.
... Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!
Mustafa Kemal Atatürk...
Mustafa Kemal Atatürk...
-
- Üye
- Mesajlar: 8
- Kayıt: 26 Oca 2015 11:58
Re: Delphi çalışma anı exe durdurma hatası
Arkadaşlar şimdi hata şuradan kaynaklanıyor.
C# Com dll in kaynak kodları elimde ona eklemeler yaparak uygulamanın hangi satırda bu hataya düştüğünü gördüm.
Şimdi sorun tarama yaparken, tarama ile ekrana görüntünün gelmesinin senkron çalışabilmesi için bir delegate kullanılmış.
Bu delegate ile bir tane event üretilmiş ve bu event ile okunan dökümanın ön arka yüz görüntü pathleri atılmış kod şöyle.
Kodu anlatayım Com dll bir tane döküman taradıktan sonra image pathlerini DocumentArgs objesine atmakta ve yukarıdaki ExecDocumentReceived fonksiyonunu öağırmakta.Burada ise en yukarıda oluşturulan delegate ten türeyen eventa (DocumentReceived(o,e)) atamaktadır. Bu kod satırına gelince exe çalışma durdurma hatası vermekte diğer bilgisayarlarda. Sorun tam olarak bu. Bi çok kaynağa baktım delegate kullanımı ile ilgili belki yanlış kullanılmıştır diye ama herkes aynı yapıda oluşturmuş.
C# Com dll in kaynak kodları elimde ona eklemeler yaparak uygulamanın hangi satırda bu hataya düştüğünü gördüm.
Şimdi sorun tarama yaparken, tarama ile ekrana görüntünün gelmesinin senkron çalışabilmesi için bir delegate kullanılmış.
Bu delegate ile bir tane event üretilmiş ve bu event ile okunan dökümanın ön arka yüz görüntü pathleri atılmış kod şöyle.
Kod: Tümünü seç
[ComVisible(false)]
public delegate void DocumentEvent(object o,DocumentArgs e);
[Guid("CD71C405-E23A-42F6-B1CF-E15C1F415C5A")]
[InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
[ComVisible(true)]
public interface IOperations
{
void DocumentReceived(object o, DocumentArgs e);
}
[Guid("8C6DAD17-0612-4166-AD35-3A55DDEAF62E")]
[ClassInterface(ClassInterfaceType.AutoDual)]
[ComVisible(true)]
[ComSourceInterfaces(typeof(IOperations))]
public class Operations:MarshalByRefObject
{
#region Methods
/// <summary>
/// OnDocumentReceived
/// </summary>
public DocumentEvent DocumentReceived;
public void ExecDocumentReceived(object o, DocumentArgs e)
{
if (DocumentReceived != null)
{
DocumentReceived(o,e);
}
}
-
- Üye
- Mesajlar: 8
- Kayıt: 26 Oca 2015 11:58
Re: Delphi çalışma anı exe durdurma hatası
Arkadaşlar hatayı yakaladım.
Dll e try-catch atınca şöyle bir hata yazdı
Object does not match target type (Nesne hedef türüyle eşleşmiyor.)
Bu hatayı veriyor.Ancak komik olan uygulamanın kendi pc ' im de çalışıyor olması ve diğer pclerde bu hatayı vermesi.
Dll e try-catch atınca şöyle bir hata yazdı
Object does not match target type (Nesne hedef türüyle eşleşmiyor.)
Bu hatayı veriyor.Ancak komik olan uygulamanın kendi pc ' im de çalışıyor olması ve diğer pclerde bu hatayı vermesi.
Re: Delphi çalışma anı exe durdurma hatası
Aralarında astlık üstlük ilişkisi olmayan sınıflar birbirine dönüştürülmeye kalkınca genelde oluşan bir hata...
Sınıfların uyuşmaması bir yana ihtiyaç duyulan veri her ikisinde de varsa, diğer benzeşmeyen kısımlar kullanılmayacaksa ve hatayı bertaraf edince her şey yoluna girecekse
reinterpret_cast
kullanın.. zorla çevirir, hata vermez..
Sınıfların uyuşmaması bir yana ihtiyaç duyulan veri her ikisinde de varsa, diğer benzeşmeyen kısımlar kullanılmayacaksa ve hatayı bertaraf edince her şey yoluna girecekse
reinterpret_cast
kullanın.. zorla çevirir, hata vermez..
... Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!
Mustafa Kemal Atatürk...
Mustafa Kemal Atatürk...
-
- Üye
- Mesajlar: 8
- Kayıt: 26 Oca 2015 11:58
Re: Delphi çalışma anı exe durdurma hatası
Hocam bu reinterpret_cast kullanımı hakkında yukarıdaki kod üzerinde veya küçük bi örnek yazabilir misin
-
- Üye
- Mesajlar: 8
- Kayıt: 26 Oca 2015 11:58
Re: Delphi çalışma anı exe durdurma hatası
Arkadaşlar hata tam olarak şu
System.Reflection.TargetException: Object does not match target type.
at System.RuntimeType.InvokeDispMethod(String name, BindingFlags invokeAttr, Object target, Object[] args, Boolean[] byrefModifiers, Int32 culture, String[] namedParameters)
at System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams)
at System.RuntimeType.ForwardCallToInvokeMember(String memberName, BindingFlags flags, Object target, Int32[] aWrapperTypes, MessageData& msgData)
at ICSCanonSDK.IOperations.DocumentReceived(Object o, DocumentArgs e)
at ICSCanonSDK.Operations.ExecDocumentReceived(Object o, DocumentArgs e) in c:\Users\PC\Documents\Visual Studio 2012\Projects\SDK\Operations.cs:line 156
System.Reflection.TargetException: Object does not match target type.
at System.RuntimeType.InvokeDispMethod(String name, BindingFlags invokeAttr, Object target, Object[] args, Boolean[] byrefModifiers, Int32 culture, String[] namedParameters)
at System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams)
at System.RuntimeType.ForwardCallToInvokeMember(String memberName, BindingFlags flags, Object target, Int32[] aWrapperTypes, MessageData& msgData)
at ICSCanonSDK.IOperations.DocumentReceived(Object o, DocumentArgs e)
at ICSCanonSDK.Operations.ExecDocumentReceived(Object o, DocumentArgs e) in c:\Users\PC\Documents\Visual Studio 2012\Projects\SDK\Operations.cs:line 156
-
- Üye
- Mesajlar: 8
- Kayıt: 26 Oca 2015 11:58
Re: Delphi çalışma anı exe durdurma hatası
Arkadaşlar sorunu çözdüm
Dll li register ettiğim gibi oluşan Tlb dosyasınıda register etmem gerekiyormuş
Yardımcı olmaya çalışan arkadaşlara teşekkürler
Dll li register ettiğim gibi oluşan Tlb dosyasınıda register etmem gerekiyormuş
Yardımcı olmaya çalışan arkadaşlara teşekkürler