当我对本机函数进行 P/Invoke 时,为什么会产生“NotSupportedEx
发布时间:2020-12-16 23:32:06 所属栏目:大数据 来源:网络整理
导读:有三种常见的可能: 托管代码中的声明不正确 .NET Compact Framework 不支持您试图要做的事情 在导出时改变 dll 名称 请检查以下情况: 是否违背任何 .NET Compact Framework P/Invoke 限制? 是否有参数需要预分配内存(即,参数是指针)?如果是这样,您就
有三种常见的可能:
请检查以下情况:
例如,在以上的第二种情况,RegOpenKey API 需要一个指向 HKEY 的指针作为它的最后一个参数。您可以按照以下方式声明和调用它: //C# [DllImport("coredll.dll",SetLastError=true)] public static extern long RegOpenKey( IntPtr hkey,string lpSubKey,ref IntPtr hkeyResult ); public long OpenMySubKey() { IntPtr hkey = IntPtr.Zero; return RegOpenKey(HKEY_CLASSES_ROOT,"MySubKey",ref hkey); } 'VB _ Public Shared Function RegOpenKey(ByVal hkey As IntPtr,ByVal lpSubKey As String,_ ByRef hkeyResult As IntPtr) As Long End Function Public Function OpenMySubKey() As Long Dim hkey As IntPtr = IntPtr.Zero Return RegOpenKey(HKEY_CLASSES_ROOT,hkey) End Function 'OpenMySubKey (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |