2017-05-25 8 views
5

को स्ट्रिंग के लिए system.collections.generic.list से परिवर्तित नहीं कर सकते मैं एक dll VB6 में लिखा करने के लिए सी # से पूर्णांक की एक सूची पारित करने के लिए चाहते हैं। VB6 में समारोह के प्रोटोटाइप इस प्रकार है:Vba.collections

Public Function FamIdentify(agentList As Collection, strName As String, strIdentifyTemplate As String, strIP As String) As Boolean 

सी # से इस प्रकार के रूप में मैं इस कार्यप्रणाली को कॉल कर रहा हूँ:

public Boolean IdentifyFinger(String name, String SampleModel, String REMOTE_ADDR) 
{ 
List<int> agentList = new List<int>(); 
// insert some element to this list 
FamServer.FamApp famApp = new FamServer.FamApp(); 
Boolean flag = famApp.FamIdentify(ref agentList, ref name, SampleModel, REMOTE_ADDR); 
return flag ; 
} 

इस कोडिंग के लिए मैं इस त्रुटि का सामना करना पड़ रहा

cannot convert from system.collections.generic.list to string to Vba.collections 

कैसे क्या मैं सी # से vb6 तक सूची पास कर सकता हूं? क्रिप्या मेरि सहायता करे ।

+1

इसके बजाय 'System.Collections.ArrayList' में कनवर्ट करने का प्रयास करें - इस प्रकार को 'CreateObject()' विधि के माध्यम से VBA के संपर्क में लाया जा सकता है। –

+0

आपकी टिप्पणी मुझे स्पष्ट नहीं है। क्या तुम समझा सकते हो ? –

+0

एक 'ArrayList' सी में # बनाएँ, पॉप्युलेट साथ मूल्यों अपने' List' फार्म, VBA कोड में एक 'ArrayList' बनाते हैं, VBA को' ArrayList' पारित ... –

उत्तर

2

आपको Microsoft.VisualBasic.Collection बनाने की आवश्यकता है, List से मूल्य जोड़ें, और उसके बाद केवल इसे कार्य करने के लिए पास करें। मुझे लगता है कि Collection पर कोई प्रत्यक्ष कलाकार नहीं है।

Microsoft.VisualBasic.Collection agentCollection= new Microsoft.VisualBasic.Collection(); 
agentList.ForEach(x=> agentCollection.Add(x)); 

Boolean flag = famApp.FamIdentify(ref agentCollection, ref name, SampleModel, REMOTE_ADDR); 
+0

नाम स्थान 'संग्रह' के प्रकार के नाम स्थान 'Microsoft.VisualBasic' में मौजूद नहीं है। (आप एक विधानसभा संदर्भ खो रहे हैं?) –

+0

'सी: \ Program Files (x86) \ संदर्भ विधानसभाओं \ Microsoft \ फ्रेमवर्क \ .NETFramework \ v4.5.2 \ Microsoft.VisualBasic.dll' या कि कहीं जैसे –

+0

Microsoft से कनवर्ट नहीं कर सकता। VBA.Collection के लिए VisualBasic.Collection। –