c# 申明ref错误
来源:百度知道 编辑:UC知道 时间:2024/09/28 08:11:16
我有一个Dll, 在VB 6.0中可以如下申明和调用:
Public Declare Function GetStatus Lib "xxx.dll" (ByRef a As Integer) As Integer
在C#中进行如下申明和调用却失败:
[DllImport("xxx.dll")]
public static extern short GetStatus(ref short no);
//调用:
short no = 1
short status = GetStatus(ref no);
//报内存访问错误.
怎么做才能正确转换?
Public Declare Function GetStatus Lib "xxx.dll" (ByRef a As Integer) As Integer
在C#中进行如下申明和调用却失败:
[DllImport("xxx.dll")]
public static extern short GetStatus(ref short no);
//调用:
short no = 1
short status = GetStatus(ref no);
//报内存访问错误.
怎么做才能正确转换?
项目属性 》 右键单击属性 》 生成 》 取消 定义DEBUG常量,选择允许不安全代码、优化代码。
祝你成功。
Integer是32Bits,short是16Bits,声明时应使用ref int 如:
public static extern short GetStatus(ref int no);
不安全代码没有启用