2009-08-31 16 views
6

के माध्यम से कॉम इंटरऑप (कॉम को सरणी कैसे पास करें) मुझे अपने क्लासिक एएसपी के लिए कॉम ऑब्जेक्ट बनाने की ज़रूरत है, क्योंकि मैं एक .NET असेंबली बना सकता हूं और इसे कॉम के साथ 'इंटरऑप' कर सकता हूं, इसलिए मैंने आगे बढ़े इस तरह की एक .net विधानसभा बनाने के लिए: -क्लासिक एएसपी

using System; 
using System.Collections.Generic; 
using System.Runtime.InteropServices; 
using System.Linq; 
using System.Text; 
using System.Data.SqlClient; 
using System.Data; 
using System.Configuration; 
using System.Web; 


namespace LMS 
{ 

[ComVisible(true)] 
public class Calc 
{ 

    public int Add(int val1, int val2, out string[] outputz) 
    { 
     int total = val1 + val2; 
     outputz = new string[5]; 
     outputz[1] = "test2"; 
     outputz[2] = "test3"; 
     outputz[3] = "test4"; 
     outputz[4] = "test5"; 
     return total; 
    } 


} 
} 

अगला मैं हमेशा की तरह किया था, का निर्माण, भाग गया: & GACUtil RegAsm

और मेरी क्लासिक एएसपी पेज में मैं इस किया था: -

Dim params 
dim objPassport3 
set objPassport3 = Server.CreateObject("LMS.Calc") 
comTest2 = objPassport3.Add(1,1,params) 

और मैं त्रुटि मिलती है:

Error Type: Microsoft VBScript runtime (0x800A0005) Invalid procedure call or argument: 'Add' /eduservice/test.asp, line 25

लेकिन अगर मैं विधानसभा संशोधित नहीं एक सरणी का उपयोग करने के लिए, यह सब सिर्फ काम करते हैं, मैं भी सामान्य स्ट्रिंग भेज सकते हैं या करने के लिए और क्लासिक एएसपी के लिए विधानसभा से int कर सकते हैं। मैं बहुत सी बातें पढ़ा, लेकिन मैं एक ही त्रुटि मिलती है,

किसी को भी इस से पहले की कोशिश की और, कृपया साझा करते हैं अपने समाधान

धन्यवाद

उत्तर

9

एएसपी केवल सरणियों कि संस्करण हैं, बजाय संभाल कर सकते हैं सफल रहा था तारों या स्याही के सरणी। तो बजाय एक वस्तु का उपयोग कर, जैसे,

public int Add(int val1, int val2, out object outputz) 
{ 
    int total = val1 + val2; 
    outputz = new object[5] 
     { 
      "test1", 
      "test2", 
      "test3", 
      "test4", 
      "test5" 
     }; 

    return total; 
} 
+0

धन्यवाद उत्तर के लिए इतना स्थिति – visual

+0

OrbMan पर अद्यतन try..will करने के लिए ... नहीं कर सकते प्रतीक्षा, धन्यवाद, आप मेरी समस्या हल, मैं इलाज पाती कोशिश आप दोपहर के भोजन के लिए। – visual

+0

कोई जांच नहीं, मदद करने में खुशी हुई। – RedFilter

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