खोज…


परिचय

यह विषय VFP और .NET के बीच इंटरोप को कवर करेगा।

.NET कोड चलाने के लिए wwDotNetBridge का उपयोग करना

वेस्ट विंड के wwDotNetBridge की मदद से, आप आसानी से एक VFP प्रोग्राम के भीतर .NET कोड का उपयोग कर सकते हैं।

श्वेत पत्र में सभी विवरण हैं, लेकिन यह संक्षिप्त उदाहरण एक .NET असेंबली में एक विधि को चलाने के लिए बुनियादी चरणों का वर्णन करने में मदद करेगा।

ध्यान दें कि wwDotNetBridge सीधे स्ट्रिंग्स, इनट्स आदि जैसे सरल गुणों का उपयोग कर सकता है। सूचियों जैसी अधिक जटिल संरचनाओं तक पहुंचने के लिए, आपको सबसे पहले wwDotNetBridge फ़ंक्शन CreateArray का उपयोग करना होगा। .NET संरचना को VFP COM सरणी में बदलने के लिए (जैसा कि दिखाया गया है) इस उदाहरण के नीचे)।

*!* Load WestWind .NET wrapper library (wwdotnetbridge.prg assumed to be in the search path)
IF (!wwDotNetBridge())
    RETURN .F.
ENDIF

lowwDotNetBridge = CREATEOBJECT("wwDotNetBridge","V4")

*!* Load .NET Assembly (include full or relative path if necessary)
IF !lowwDotNetBridge.LoadAssembly("SomeDotNetAssembly.dll")
    lcAssemblyLoadError = "LoadAssembly error: " + lowwDotNetBridge.cErrorMsg
    =MESSAGEBOX(lcAssemblyLoadError, MB_ICONSTOP, "Error")
    RETURN .F.
ENDIF

*!* Parameters to pass to class constructor
*!* You can pass up to 5 paramenters to the constructor
lcParameter1 = "StringParameter1"
lcParameter2 = "StringParameter2"
lnParameter3 = 3
lcParameter4 = .NULL.

*!* Get an instance of the assembly class
loAssemblyReference = lowwDotNetBridge.CreateInstance("MyDotNetProject.MyDotNetClass", ;
    lcParameter1, lcParameter2, lnParameter3, lcParameter4)
IF lowwDotNetBridge.lError
    lcAssemblyLoadError = "An error occurred loading the class: " + lowwDotNetBridge.cErrorMsg
    RETURN .F.
ENDIF

*!* Usage Example

*!* This example runs a method that return a boolean 
*!* and populates a List<string> (SomeStringList).
*!*
*!* The assembly has a public property named "LastErrorMessage" 
*!* with details about any handled exceptions/problems.

IF (!loAssemblyReference.SomePublicMethod())
    msg = "There was a problem executing the method:" + CRLF + ;
        loAssemblyReference.LastErrorMessage
    =MESSAGEBOX(msg, MB_ICONSTOP, "Error")
    RETURN .F.
ENDIF

*!* At this point the string list (SomeStringList) should be populated
*!* wwDotNetBridge can convert that list to a VFP COM array (0-based)

laVFPArrayOfStrings = lowwDotNetBridge.CreateArray()
laVFPArrayOfStrings.FromEnumerable(loAssemblyReference.SomeStringList)

FOR x = 0 TO laVFPArrayOfStrings.Count-1
    ? laVFPArrayOfStrings.Item(x)
ENDFOR


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow