using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
namespace PatternSequencer
{
class Version
{
public string majorVersion;
public string minorVersion;
ushort* pmajorVersion;
ushort* pminorVersion;
ulong status;
[DllImport(@"c:\DOcuments\Myapp.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "SRX_DllVersion")]
public static extern ulong SRX_DllVersion(ushort* pmajorVersion, ushort* pminorVersion);
public Version()
{
status = SRX_DllVersion(&pmajorVersion, &pminorVersion);
if (status)
{
majorVersion = "1 - " + *pmajorVersion;
minorVersion = "1 - " + *pminorVersion;
}
else
{
majorVersion = "0 - " + *pmajorVersion;
minorVersion = "0 - " + *pminorVersion;
}
}
}
}
से इनपुट तर्क के रूप में पॉइंटर्स लेता है यह एक त्रुटि पॉइंटर्स फेंकता है और निश्चित आकार बफर केवल एक असुरक्षित संदर्भ में उपयोग किया जा सकता है। मैं सी ++ डीएलएल को पॉइंटर्स कैसे पास करूं? मैं सी # करने के लिए नया हूँ, कृपया मेरी मददसी ++ फ़ंक्शन का उपयोग कैसे करें जो सी #
पैरामीटर को 'रेफरी' के रूप में घोषित करें, जो 'असुरक्षित' कोड की आवश्यकता को खत्म कर देगा। – William
@ विलियम: क्या आप विस्तार से समझा सकते हैं। मैं सी # – user2495173
पर नया हूं जो आप यहां करना चाहते हैं [मार्शलिंग] (http://msdn.microsoft.com/en-us/magazine/cc164193.aspx) के रूप में जाना जाता है। यह एक बड़ा विषय है, लेकिन इस तरह के साधारण मामलों के लिए, यह बहुत कठिन नहीं है। –