2009-12-30 32 views
7

हमने कुछ साल पहले vb6.0 और SQL Server 2000 का उपयोग करके एक एप्लिकेशन विकसित किया था। हाल ही में, हमारे ग्राहकों में से कुछ हमें बताते हैं कि आवेदन चलाते समय है, जो उनकी हे के रूप में WinXP SP2 का उपयोग कंप्यूटर से कुछ पर/एस, वे निम्न त्रुटि मिलती है, जब वे खोज प्रपत्र दिखाना चाहते हैं:इस त्रुटि का कारण क्या है? "रनटाइम त्रुटि 380: अमान्य संपत्ति मान"

"रनटाइम त्रुटि 380: अमान्य संपत्ति के मूल्य "

क्या इस त्रुटि का कारण बनता है?

+0

अन्य कई टिप्पणियों की तरह राज्य की तरह। मैंने देखा है कि इस समस्या का सबसे बड़ा स्रोत फोंट गायब है। मेरे मामले में छोटे फ़ॉन्ट्स और सैन्स सेरिफ़ विंडोज 10 से गायब थे। – wizebin

उत्तर

8

मुझे लगता है कि आपका एप्लिकेशन मास्क किए गए संपादन बॉक्स का उपयोग करता है? यह एक अपेक्षाकृत अच्छी तरह से ज्ञात समस्या, माइक्रोसॉफ्ट यहाँ द्वारा प्रलेखित है:

http://support.microsoft.com/kb/177088

लेख VB4 और 5 को संदर्भित करता है, लेकिन मैं यकीन है कि एक ही VB6 के लिए सच है हूँ।

संपादित

आगे अनुसंधान पर, मैं भी अन्य नियंत्रण के साथ इस समस्या के लिए संदर्भ लग रहा है। XP चलाने वाले उपयोगकर्ताओं के लिए Windows XP पर अपने एप्लिकेशन को दोबारा बनाने के लिए शायद उन्हें एक वर्किंग वर्जन तैयार किया जाएगा, हालांकि यह एक आदर्श समाधान नहीं है ...

+0

डेविड, मैंने इसे मास्क एडिटबॉक्स नियंत्रणों की जांच की। खैर, मैंने 4 मास्क एडिटबॉक्स को खोज फ़ॉर्म पर देखा लेकिन दुर्भाग्य से, उनकी दृश्य संपत्ति डिज़ाइन समय पर सच थी। – odiseh

+4

यह त्रुटि केवल Microsoft नियंत्रण में बग के कारण नहीं होती है। यह तब भी होता है जब आप प्रोग्रामिंग त्रुटि करते हैं, और गलती से एक अमान्य मान पर एक संपत्ति सेट करते हैं। उपयोगकर्ता मशीनों पर कुछ अलग अलग व्यवहार पैदा कर रहा है - उदा। विंडोज विषयों या आवेदन की विभिन्न विन्यास। – MarkJ

5

runtime error 380 का कारण क्या है? किसी ऑब्जेक्ट की संपत्ति या नियंत्रण को उस मान पर सेट करने का प्रयास कर रहा है जिसकी अनुमति नहीं है। उस कोड को देखें जो आपके खोज फ़ॉर्म को लोड करता है (Form_Load इत्यादि) किसी भी कोड के लिए जो किसी संपत्ति को रनटाइम मानों पर निर्भर करता है।

मेरी दूसरी सलाह कुछ त्रुटि हैंडलिंग और कुछ लॉगिंग जोड़ने के लिए है जो त्रुटि उत्पन्न करने वाली सटीक रेखा को ट्रैक करने के लिए है।

  • कोड के माध्यम से छिड़ककर बयान है कि कहते हैं कि "एक्स के लिए मिल गया", "गॉट वाई करने के लिए", आदि त्रुटि के सटीक स्थान खोजने के लिए इन का उपयोग करें लॉगिंग। आप एक टेक्स्ट फ़ाइल या event log पर लिख सकते हैं या OutputDebugString का उपयोग कर सकते हैं।
  • को संभालने में त्रुटि त्रुटि के लिए stack trace कैसे प्राप्त करें। नीचे दिए गए इस कोड की तरह, शामिल होने वाले प्रत्येक दिनचर्या में एक त्रुटि हैंडलर जोड़ें। आवश्यक मुफ्त उपकरण MZTools स्वचालित रूप से ऐसा कर सकता है। आप लाइन नंबरों की रिपोर्ट करने के लिए Erl का उपयोग भी कर सकते हैं और सटीक रेखा ढूंढ सकते हैं - MZTools स्वचालित रूप से आपके लिए लाइन नंबरों में डाल सकते हैं।

_

On Error Goto Handler 
    <routine contents> 
Handler: 
    Err.Raise Err.Number, "(function_name)->" & Err.source, Err.Description 
+0

मार्क, यह Vb6.0 :(सटीक रेखा टोपी त्रुटि का कारण बनने का कोई तरीका नहीं है। – odiseh

+2

@odiseh अभी तक हार न दें, त्रुटि का कारण बनने वाली सटीक रेखा प्राप्त करने के कई तरीके हैं। मैंने किया है यह कई बार लोड करता है। मैंने कुछ सुझावों के साथ अपना जवाब संपादित कर दिया है। – MarkJ

+2

@odiseh: यदि आप अपने कोड में लाइन नंबर जोड़ते हैं, तो एरल लाइन नंबर को वापस लौटाएगा। – jac

7

बस में मेरे दो सेंट फेंक: मेरे अनुभव में इस त्रुटि का एक और आम कारण Form_Resize घटना एक फार्म पर नियंत्रण आकार बदलने के लिए गणित का उपयोग करता है में कोड है। नियंत्रण आयाम (Height और Width) ऋणात्मक मानों के लिए सेट नहीं किया जा सकता है, तो आपके Form_Resize घटना में निम्नलिखित की तरह कोड इस त्रुटि पैदा कर सकता है:

Private Sub Form_Resize() 
    'Resize text box to fit the form, with a margin of 1000 twips on the right.' 
    'This will error out if the width of the Form drops below 1000 twips.' 
    txtFirstName.Width = Me.Width - 1000 
End Sub 

ऊपर कोड एक समय "अवैध संपत्ति के मूल्य" त्रुटि बढ़ा देंगे अगर फॉर्म 1000 से कम twips चौड़े आकार में बदल दिया गया है। यदि यह समस्या है, तो सबसे आसान समाधान On Error Resume Next को पहली पंक्ति के रूप में जोड़ना है, ताकि इन प्रकार की त्रुटियों को अनदेखा किया जा सके। यह वीबी 6 में उन दुर्लभ परिस्थितियों में से एक है जहां On Error Resume Next आपका मित्र है।

0

ऐसा लगता है कि जब आप एक प्रोग्राम लिख रहे हैं और संकलित कर रहे हैं, तो ऊपर दिए गए उत्तरों की तरह है, लेकिन मैं "एक्स लाइब्रिस" द्वारा Voyager कार्ड कैटलॉग का हिस्सा, विक्रेता के सॉफ्टवेयर, Catalog.exe का उपयोग कर रहा हूं और मुझे त्रुटि मिल रही है अच्छी तरह से:

catalog-error.png http://img805.imageshack.us/img805/8275/catalogerror.png

मैं दो विंडोज 7 32 बिट मशीन है। नया मुझे त्रुटि दे रहा है लेकिन पुराने पर यह ठीक चलता है। मैंने Google के साथ बहुत सारे शोध किए हैं और यहां कुछ ऐसी चीजें हैं जिन्हें मैंने पाया है कि लोग इस मुद्दे से संबंधित कह रहे हैं। मोड

  • Run system file checker sfc /scannow
    • An outdated or corrupt video card driverRun-Time Error 380 पैदा कर सकता है सुरक्षित में (अद्यतन करने की कोशिश)
    • पुनः प्रारंभ: हो सकता है इन बातों में से एक त्रुटि आप के लिए, ठीक है, हालांकि वे मेरे लिए काम नहीं किया में मदद मिलेगी एप्लिकेशन को व्यवस्थापक के रूप में चलाएं (दायाँ क्लिक करें, Run as Administrator)
    • सभी एमएस विंडोज और एमएस ऑफिस अपडेट प्राप्त करें
    • सॉफ़्टवेयर अनइंस्टॉल करें और पुनः इंस्टॉल करें ई
    • स्वच्छ remove bad or null registry values
    • Reinstall MS Office को CCleaner के साथ रजिस्ट्री (या संभवतः स्थापित करने और पुराने संस्करण?)
    • (फिर से) स्थापित सभी Microsoft VB6 क्रम पुस्तकालयों, अद्यतन, और सेवा पैक
    • (फिर से) स्थापित "माइक्रोसॉफ्ट विजुअल C++ रनटाइम लायब्रेरी"
    • Configure Windows to use the decimal "." when displaying numbers. Select Start/Control Panel/Date, Time, Language, and Regional Options.

    से क्या दूसरों (डेविड एम) की तरह कह रहे हैं मुझे लगता है कि यहसे संबंधित हो सकता 0 लाइब्रेरी - लेकिन ऐसा लगता है कि मेरे दोनों कंप्यूटरों पर यह फ़ाइल सटीक वही है (समान संस्करण, आकार, दिनांक, आदि)।

    चूंकि वह फ़ाइल अलग नहीं थी, इसलिए मैंने यह पता लगाने की कोशिश की कि एप्लिकेशन (डीएल) फाइलों का उपयोग किस प्रकार किया जा सकता है, इसलिए मैंने Process Explorer by Sysinternals लॉन्च किया और एप्लिकेशन को देखा (यह लोड होता है और फिर जब आप इसे कहते हैं तो दुर्घटनाग्रस्त हो जाता है " कनेक्ट करें "), और नीचे दिए गए स्क्रीनशॉट मुझे मिले हैं।

    screen1.png http://img195.imageshack.us/img195/2231/screen1oo.png

    screen2.png http://img88.imageshack.us/img88/2153/screen2ao.png

    screen3.png http://img337.imageshack.us/img337/7622/screen3qk.png

    अब, मैं नहीं एक Windows/वीबी प्रोग्रामर, बस एक शक्ति उपयोगकर्ता हूँ, और इसलिए मैं के लिए मेरी जानकारी के अंत में के बारे में हूँ क्या करने के लिए। मैंने सॉफ्टवेयर विक्रेता से बात की है और वे विंडोज़ को पुनर्स्थापित करने की सलाह देते हैं। यह शायद काम करेगा, लेकिन यह सिर्फ मुझे बताता है कि यह प्रोग्राम विंडोज 7 पर चल सकता है, लेकिन इस विशेष प्रणाली पर कुछ त्रुटियों का कारण बन रहा है। आखिरकार, यह एक ऐसी छवि है जिसे कई मशीनों पर पहले से ही तैनात किया गया है, जबकि एक बार विंडोज़ को फिर से इंस्टॉल करना एक बड़ा सौदा नहीं है, अगर मुझे फिक्स या वर्कअराउंड पता चल जाए तो मुझे कुछ गंभीर समय बचाएगा।

  • +0

    चिह्न, किसी नए के लिए नकारात्मक होने के लिए खेद है (ish) उपयोगकर्ता लेकिन यह साइट प्रोग्रामर के लिए प्रोग्रामिंग प्रश्न पूछने के लिए है। आपको [सुपरयूसर] (http://superuser.com/) पर बेहतर प्रतिक्रिया मिल सकती है। इसके अलावा, आप एक उत्तर पोस्ट करने के बजाय एक प्रश्न पूछ रहे हैं, सब कुछ जिसका अर्थ यह है कि इसे हटाने के लिए ध्वजांकित किया जाना चाहिए। उसने कहा, आपने स्पष्ट रूप से इसमें बहुत प्रयास किए हैं, तो क्या मैं सुझाव दे सकता हूं कि आप सबकुछ संपादित/कॉपी करें और SuperUser पर एक नए क्यू के रूप में पोस्ट करें (या यहां तक ​​कि यदि आप SO पर भी हैं इसे प्रोग्रामिंग पर सीमाएं मानें) – Basic

    +0

    संयोग से , अपने क्यू को पूरी तरह से पढ़ते हुए, यह ध्यान देने योग्य है कि विंडोज़ 'विंडोज़ \ WinSxS' फ़ोल्डर (विंडोज साइड-बाय-साइड) में एक ही डीएलएल के कई अलग-अलग संस्करणों को स्टोर करता है, इसलिए यह काफी संभव है कि यह वास्तव में विभिन्न संस्करणों को प्रस्तुत कर रहा है ऐप के लिए डीएलएल। – Basic

    +0

    @ बासिक - अच्छे अंक। मैंने संपादन किए हैं ताकि यह एक जवाब हो। मुझे एहसास है कि एसओ आमतौर पर प्रोग्रामिंग सवालों के लिए है, लेकिन मुझे लगता है कि 20k से अधिक विचारों के साथ कुछ लोग जो इस प्रश्न को ढूंढ रहे हैं (इस त्रुटि का कारण क्या है? "रनटाइम त्रुटि 380: अवैध संपत्ति मान") नहीं देख रहे हैं क्योंकि वे वीबी प्रोग्रामर हैं इसलिए अगर यह जवाब चारों ओर फंस गया तो दूसरों के लिए सहायक होगा। 'विंडोज़ \ WinSxS' पर नोट के लिए धन्यवाद - मैं इसे देख लूंगा! :) – mark

    0

    मुझे लगता है कि मूल रूप से समस्या इस तथ्य में निहित है, ओ/एस के किस संस्करण के तहत प्रोग्राम संकलित किया गया है और ओ/एस के किस संस्करण के तहत आप प्रोग्राम चला रहे हैं। मैंने बहुत सी अद्यतन डीएल और ओसीएक्स फाइलें देखी हैं जो समान त्रुटियों का कारण बनती हैं, खासकर जब प्रोग्राम को डीएलएल और ओसीएक्स फाइलों के पुराने संस्करण के तहत संकलित किया गया है और नवीनतम डीएलएल और ओसीएक्स फाइलों को स्थापित करने के दौरान बनाए रखा गया है।

    +0

    यह गलत है। –

    0

    यदि आप सॉफ़्टवेयर लिखते हैं, या सॉफ़्टवेयर का उपयोग करते हैं, जो कार्यक्रम शुरू करते समय प्रोग्राम विंडो निर्देशांक या आकारों का पुन: उपयोग करने के लिए संग्रहीत करता है, तो ऐसे आकारों और स्थितियों की किसी भी घटना (ओं) के लिए जांचें जो इसका कारण बनेंगे। मैंने इसे विभिन्न विक्रेताओं से समय और समय फिर से देखा है जो आलसी उत्पादन कोड है जो कहा गया आकार के आकार के आधार पर "फॉर्म" (एक प्रोग्राम विंडो) पर नियंत्रण का आकार बदलता है। HKLM \ Software \ विक्रेता \ प्रोग्राम और HKCU \ Software \ विक्रेता \ प्रोग्राम में देखें। विशिष्ट कुंजी की तलाश करें जो अपमानजनक हो सकती है। विंडोज़ओएसएक्स और विंडोपोसी नामक कुंजियों में प्रोग्राम विंडो की स्थिति के लिए मेरे पास एक बार प्रोग्राम स्टोर -48000 था। आप प्रोग्राम को स्टार्टबार पर शुरू और चलाने के लिए देख सकते थे, लेकिन प्रोग्राम विंडो स्वयं 48000 से कम थी (-48000 का पूर्ण मूल्य), यह स्क्रीन से पूरी तरह से स्थित थी। यदि आप regstry जानकारी को संपादित करने में सहज नहीं हैं - अधिकांश लोग नहीं हैं - फिर सॉफ़्टवेयर को अनइंस्टॉल करें, किसी भी बचे हुए प्रविष्टियों को हटाने के लिए रजिस्ट्री क्लीनर का उपयोग करें, फिर सॉफ़्टवेयर को पुनर्स्थापित करें और देखें कि इससे समस्या ठीक नहीं होती है या नहीं।

    0

    क्या आप स्क्रीन सीमाओं से स्क्रीन पर नियंत्रण (लेबल, फ्रेम, टेक्स्ट ..) को ढूंढ रहे हैं। यदि कुछ नियंत्रण की स्थिति किसी भी चर के आधार पर निर्भर करती है, और उस चर को प्रारंभ में सही ढंग से परिभाषित नहीं किया गया है, तो आपके पास यह त्रुटि संदेश हो सकता है।

    क्या आपके पास दोनों कंप्यूटरों में अलग-अलग स्क्रीन रिज़ॉल्यूशन हो सकता है। और यह कारण हो सकता है।

    क्रम कार्यक्रम बग को खोजने के लिए, सभी बाद के चरणों में इस लाइन डाल में

    : त्रुटि को फिर से शुरू अगले

    यह सही समस्या है, तो आप इस लाइन हर उप में, एक के बाद साफ करना होगा एक पर , और अगर पुष्टि करने समस्या वापस आती है। जब एक ठोस उप में इस रेखा को हटाने के बाद समस्या आती है, तो आपको बग को संग्रहीत करने वाले उप-सूटिन को पता चलेगा। वहां खोजें और आपको यह मिल जाएगा।

    [email protected]

    0

    कई वास्तव में मूर्खतापूर्ण बातें इस त्रुटि पैदा कर सकता है। जिसकी मुझे सामना करना पड़ा वह एक फ़ॉन्ट है जो डिफ़ॉल्ट रूप से विंडोज 8 के साथ शामिल नहीं है - कूरियर न्यू। वीबी 6 आवेदन का नाम किसी एक रूप में हार्ड कोड किया गया था, इसलिए स्टार्ट-अप पर संदेश।

    1

    पुराना धागा, लेकिन यहां एक जवाब है।

    voyager

    यानी के साथ समस्याग्रस्त फ़ॉन्ट्स यानी। अगर आप कुछ कोरल सूट इंस्टॉल करते हैं, तो कुछ भाषा विकल्पों को छोड़ दें। हम प्रक्रिया मॉनिटर के साथ इस माध्यम से खोदते हैं और कारण पाते हैं, हमारे साथ यह दो फ़ॉन्ट फ़ाइलें थीं।

    DFKai71.ttf dfmw5.ttf

    हम एक ही समस्या थी और यह windows \ फोंट फ़ोल्डर से इन दो फ़ॉन्ट फ़ाइलों को हटाने के द्वारा तय हुई थी।

    0

    इस त्रुटि का एक कारण कोड में बहुत मूर्खतापूर्ण गलती है। यदि ActiveX की किसी संपत्ति को उचित मान पास नहीं किया गया है, तो यह त्रुटि भी फेंक दी गई है।

    खाली मूल्य की तरह Font.Name प्रॉपर्टी या टेक्स्ट वैल्यू को पास किया गया है ऊंचाई संपत्ति को पास किया जाता है।

    0

    2017 मुझे पता है ... लेकिन किसी को उनके कोड रखरखाव के दौरान इस समस्या का सामना करना पड़ रहा है।,

    maskedbox.Mask = "#.###" 
    maskedbox.Text = "12345678" 
    

    कि ठीक करने के लिए सिर्फ सेट PromptInclude संपत्ति को "गलत":

    यह त्रुटि हुआ जब मैंने कोशिश की।

    -3

    त्रुटि 380 विंडोज 7 समाधान बहुत आसान है बस अपनी तिथि का समय जांचें & क्षेत्रीय सेटिंग उन्हें सही करती है।

    संबंधित मुद्दे