Foxtable(狐表)用户栏目专家坐堂 → [求助]尝试读取或写入受保护的内存


  共有3890人关注过本帖树形打印复制链接

主题:[求助]尝试读取或写入受保护的内存

帅哥哟,离线,有人找我吗?
mojo
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:52 积分:1030 威望:0 精华:0 注册:2012/2/26 22:20:00
[求助]尝试读取或写入受保护的内存  发帖心情 Post By:2014/11/25 20:42:00 [只看该作者]

xp开发版设计项目发布正常使用,但是发布文件在win7系统上出现尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
图片点击可在新窗口打开查看此主题相关图片如下:无标题.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/25 20:43:00 [只看该作者]

 右键,设置用管理员身份运行;

 

 贴出你写了什么代码。


 回到顶部
帅哥哟,离线,有人找我吗?
mojo
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:52 积分:1030 威望:0 精华:0 注册:2012/2/26 22:20:00
  发帖心情 Post By:2014/11/25 20:48:00 [只看该作者]

不好意思代码有点乱,初步设计阶段:
Dim lb11 As WinForm.Label = e.Form.Controls("Label11")
Dim lb12 As WinForm.Label = e.Form.Controls("Label12")
Dim lb13 As WinForm.Label = e.Form.Controls("Label13")
Dim lb14 As WinForm.Label = e.Form.Controls("Label14")
Dim lb15 As WinForm.Label = e.Form.Controls("Label15")
Dim lb16 As WinForm.Label = e.Form.Controls("Label16")
Dim lb17 As WinForm.Label = e.Form.Controls("Label17")
Dim lb19 As WinForm.Label = e.Form.Controls("Label19")
Dim Pc1 As WinForm.PictureBox = e.Form.Controls("PictureBox1")
Dim tb5 As WinForm.TextBox = e.Form.Controls("TextBox5")


lb11.text =""
lb12.text =""
lb13.text =""
lb14.text =""
lb15.text =""
lb16.text =""
lb17.text =""
lb19.text =""
tb5.text = ""
Pc1.image = GetImage("")

e.Form.Controls("Button2").Enabled = False
e.Form.Controls("Button3").Enabled = False

Dim result As Integer
Dim CardID (0 To 4) As Byte


If Vars("IcDev")<= 0 Then
    MessageBox.Show("未连接读写设备!", "提示")
    Exit Sub
End If

'result= dc_card_chr (Vars("IcDev"), 0, CardID(0))
'If result < 0 Then
'  MessageBox.Show("请放入卡片!" + Cstr(result), "提示")
'  Exit Sub
'End If


result=DC_find_i_d(Vars("IcDev"))

If result < 0 Then
    MessageBox.Show("请检查身份证是否放入!", "提示")
    Exit Sub
End If

'MessageBox.Show("读取身份证信息!", "提示")

Vars("IcID")= DC_start_i_d(Vars("IcDev"))
If Vars("IcID") <0 Then
    MessageBox.Show("读取身份证信息失败!", "提示")
    Exit Sub
End If

'MessageBox.Show("读取身份证1!", "提示")
lb11.text =DC_i_d_query_name(Vars("IcID"))

'MessageBox.Show("读取身份证2!", "提示")
lb12.text  =DC_i_d_query_sex(Vars("IcID"))

'MessageBox.Show("读取身份证3!", "提示")
lb13.text =DC_i_d_query_nation(Vars("IcID"))

'MessageBox.Show("读取身份证4!", "提示")
lb14.text =DC_i_d_query_birth(Vars("IcID"))


'MessageBox.Show("读取身份证5!", "提示")
lb15.text =DC_i_d_query_id_number(Vars("IcID"))


'MessageBox.Show("读取身份证6!", "提示")
lb16.text =DC_i_d_query_address(Vars("IcID"))


'MessageBox.Show("读取身份证7!", "提示")
lb17.text =DC_i_d_query_expire_day(Vars("IcID"))


'MessageBox.Show("读取身份证8!", "提示")
lb19.text =DC_i_d_query_department(Vars("IcID"))


Dim FileName(16) As Byte
FileName = System.Text.Encoding.Default.GetBytes("~me.bmp")

'MessageBox.Show("读取身份证9!", "提示")
result = DC_i_d_query_photo_file(Vars("IcID"),FileName )   '相片
If result >= 0 Then
    Pc1.Image = GetImage("~me.bmp")
Else
    MessageBox.Show("读取身份证照片失败!", "提示")
    Exit Sub
End If   

'MessageBox.Show("读取身份证照片成功!", "提示")

result=DC_end_i_d(Vars("IcID"))

If result <0 Then
    MessageBox.Show("读取身份证信息失败!", "提示")
    Exit Sub
End If

'进行人员表操作
Dim Position1 As Integer
'Position1 = Tables("人员清单").Find("身份证号码 = '" & lb15.text & " ' ") '查找是否存在
Position1 = Tables("人员清单").Find( lb15.text, 0, "身份证号码", False, True, True ) '查找是否存在
If Position1>=0 Then  '如果此用户存在
    e.Form.Controls("Button2").Enabled = True
    e.Form.Controls("Button3").Enabled = True
    Tables("人员清单").position = position1
    'e.Form.Controls("Groupbox1").visible = True
    
    Dim Position2 As Integer
    Position2 = Tables("职工信息").Find(Tables("人员清单").current("身份证号码"), 0, "身份证号码", False, True, True ) '查找是否存在
    If Position2 >=0 Then
        Tables("职工信息").position = position2
        tb5.text = "有此人员,所属公司:"+Tables("职工信息").current("所属公司")
    Else
        tb5.text = "职工信息表无此用户"
    End If
    
    
Else  '如果数据表没有此用户
    e.Form.Controls("Button2").Enabled = False
    e.Form.Controls("Button3").Enabled = True
    'e.Form.Controls("Groupbox1").visible = False
    
    Dim Position2 As Integer
    Position2 = Tables("职工信息").Find(lb15.text, 0, "身份证号码", False, True, True ) '查找是否存在
    If Position2 >=0 Then
        Tables("职工信息").position = position2
        tb5.text = "有此人员,所属公司:"+Tables("职工信息").current("所属公司")
    Else
        tb5.text = "职工信息表无此用户"
    End If
    
End If

MessageBox.Show("读取身份证信息成功!", "提示")

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/25 20:53:00 [只看该作者]

1、你要用管理员身份运行

 

2、报这个错,通常是函数定义有问题,贴出你 全局代码


 回到顶部
帅哥哟,离线,有人找我吗?
mojo
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:52 积分:1030 威望:0 精华:0 注册:2012/2/26 22:20:00
  发帖心情 Post By:2014/11/25 20:57:00 [只看该作者]

全局代码
Public Declare Function dc_init Lib "C:\Program Files\深圳市德卡科技有限公司\T10N多功能读写器\Trf32.dll" (ByVal Port As Integer, ByVal Baud As Integer) As Integer '连接设备
Public Declare Function dc_init_comm Lib "C:\Program Files\深圳市德卡科技有限公司\T10N多功能读写器\Trf32.dll" ( DeviceName As String,  Baudrate As Integer ) As Integer
Public Declare Function dc_beep Lib "C:\Program Files\深圳市德卡科技有限公司\T10N多功能读写器\Trf32.dll" ( icdev As Integer, ms As Integer) As Integer
Public Declare Function dc_exit Lib "C:\Program Files\深圳市德卡科技有限公司\T10N多功能读写器\Trf32.dll"  ( icdev As Integer) As Integer
Public Declare Function DC_find_i_d Lib "C:\Program Files\深圳市德卡科技有限公司\T10N多功能读写器\Trf32.dll"  ( DeviceHandle As Integer) As Integer
Public Declare Function DC_start_i_d Lib "C:\Program Files\深圳市德卡科技有限公司\T10N多功能读写器\Trf32.dll"  ( DeviceHandle As Integer) As Integer
Public Declare Function DC_end_i_d Lib "C:\Program Files\深圳市德卡科技有限公司\T10N多功能读写器\Trf32.dll"  ( IdHandle  As Integer) As Integer
Public Declare Function DC_i_d_query_name Lib "C:\Program Files\深圳市德卡科技有限公司\T10N多功能读写器\Trf32.dll"  ( IdHandle  As Integer) As String
Public Declare Function DC_i_d_query_sex Lib "C:\Program Files\深圳市德卡科技有限公司\T10N多功能读写器\Trf32.dll"  ( IdHandle  As Integer) As String
Public Declare Function DC_i_d_query_nation Lib "C:\Program Files\深圳市德卡科技有限公司\T10N多功能读写器\Trf32.dll"  ( IdHandle  As Integer) As String
Public Declare Function DC_i_d_query_birth Lib "C:\Program Files\深圳市德卡科技有限公司\T10N多功能读写器\Trf32.dll"  (ByVal IdHandle As Long) As String
Public Declare Function DC_i_d_query_address Lib "C:\Program Files\深圳市德卡科技有限公司\T10N多功能读写器\Trf32.dll"  (ByVal IdHandle As Long) As String
Public Declare Function DC_i_d_query_id_number Lib "C:\Program Files\深圳市德卡科技有限公司\T10N多功能读写器\Trf32.dll"  (ByVal IdHandle As Long) As String
Public Declare Function DC_i_d_query_department Lib "C:\Program Files\深圳市德卡科技有限公司\T10N多功能读写器\Trf32.dll"  (ByVal IdHandle As Long) As String
Public Declare Function DC_i_d_query_expire_day Lib "C:\Program Files\深圳市德卡科技有限公司\T10N多功能读写器\Trf32.dll"  (ByVal IdHandle As Long) As String
Public Declare Function a_hex Lib "C:\Program Files\深圳市德卡科技有限公司\T10N多功能读写器\Trf32.dll"  (ByVal asc$, ByRef hex As Byte, ByVal len1 As Integer) As Integer
Public Declare Function hex_a Lib "C:\Program Files\深圳市德卡科技有限公司\T10N多功能读写器\Trf32.dll"  (ByRef sdata As Byte, ByVal gdata$, ByVal len1 As Integer) As Integer
Public Declare Function DC_i_d_query_photo_file Lib "C:\Program Files\深圳市德卡科技有限公司\T10N多功能读写器\Trf32.dll"  (ByVal IdHandle As Integer, ByVal FileName As Byte()) As Integer
'Public Declare Function DC_i_d_query_photo_file Lib "C:\Program Files\深圳市德卡科技有限公司\T10N多功能读写器\Trf32.dll"  (ByVal IdHandle As Integer, Byref FileName As Stringbuilder) As Integer


'for M1 card
Public Declare Function dc_card Lib "C:\Program Files\深圳市德卡科技有限公司\T10N多功能读写器\Trf32.dll"  (ByVal icdev As Integer, ByVal mode%, ByRef Snr As Long) As Integer
Public Declare Function dc_load_key Lib "C:\Program Files\深圳市德卡科技有限公司\T10N多功能读写器\Trf32.dll"  (ByVal icdev As Integer, ByVal mode%, ByVal secnr%, ByVal nkey As Byte()) As Integer
Public Declare Function dc_load_key_hex Lib "C:\Program Files\深圳市德卡科技有限公司\T10N多功能读写器\Trf32.dll"  (ByVal icdev As Integer, ByVal mode%, ByVal secnr%, ByVal nkey As Byte()) As Integer
Public Declare Function dc_authentication Lib "C:\Program Files\深圳市德卡科技有限公司\T10N多功能读写器\Trf32.dll"  (ByVal icdev As Integer, ByVal mode%, ByVal scenr%) As Integer
Public Declare Function dc_authentication_pass Lib "C:\Program Files\深圳市德卡科技有限公司\T10N多功能读写器\Trf32.dll"  (ByVal icdev As Integer, ByVal mode%, ByVal scenr%, ByVal nkey As Stringbuilder) As Integer
Public Declare Function dc_read Lib "C:\Program Files\深圳市德卡科技有限公司\T10N多功能读写器\Trf32.dll"  (ByVal icdev As Integer, ByVal adr%, ByVal sdata As Byte()) As Integer
Public Declare Function dc_read_hex Lib "C:\Program Files\深圳市德卡科技有限公司\T10N多功能读写器\Trf32.dll"  (ByVal icdev As Integer, ByVal adr%, ByVal sdata As Byte()) As Integer
Public Declare Function dc_write Lib "C:\Program Files\深圳市德卡科技有限公司\T10N多功能读写器\Trf32.dll"  (ByVal icdev As Integer, ByVal adr%, ByVal sdata As Byte()) As Integer
Public Declare Function dc_write_hex Lib "C:\Program Files\深圳市德卡科技有限公司\T10N多功能读写器\Trf32.dll"  (ByVal icdev As Integer, ByVal adr%, ByVal sdata As Byte()) As Integer
Public Declare Function dc_halt Lib "C:\Program Files\深圳市德卡科技有限公司\T10N多功能读写器\Trf32.dll"  (ByVal icdev As Integer) As Integer



 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/25 21:02:00 [只看该作者]

 那不发布的,在win7中使用是否正常?用管理员身份运行

 回到顶部
帅哥哟,离线,有人找我吗?
mojo
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:52 积分:1030 威望:0 精华:0 注册:2012/2/26 22:20:00
  发帖心情 Post By:2014/11/25 21:05:00 [只看该作者]

也是一样问题

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/25 21:15:00 [只看该作者]

win7里,用管理员身份运行exe了吗?

 

再者,在对应路径下,注册了dll了吗?C:\Program Files\深圳市德卡科技有限公司\T10N多功能读写器


 回到顶部