在VB里头运行程序没有问题, make 出来的EXE运行以后报内存访问错误,请问这一般是什么原因?我这个程序用到了VC写的DLL, 其中还要传回调函数给DLL调用, 会不会是这个原因? 还是编译选项的没有选对?谢谢!

解决方案 »

  1.   

    这种问题不常见,一般都是Debug出问题,Make EXE后正常。应该不是编译选项的问题,很有可能是那个DLL的问题。不知道你的DLL是怎么使用的?
      

  2.   

    就是这样声明:
    Private Declare Function func_name Lib "dll_name.dll" _
                                (ByVal param As Long) As Long
    然后使用.DLL导出的函数有十个左右,我在VB工程里头只声明了二个,会不会是这个原因?
      

  3.   

    dll的参数类型正确吗?是不是指针造成的错误?
      

  4.   

    我感觉是传回调函数指针的地方出的问题.但是现在debug下不出错,而且运行起来很正常,这样找错误的难度就大了.
      

  5.   

    调试成功,make exe文件后却错误,这个代码也是这样,不解啊
    http://blog.csdn.net/lingll/archive/2006/05/10/722760.aspx
      

  6.   

    对了,EXE运行的时候是报:  引用了"0x00000076" 内存. 该内存不能"read"
      

  7.   

    对了,EXE运行的时候是报:  引用了"0x00000076" 内存. 该内存不能"read"
    ----------------
    应该是使用了无效的指针,具体要看代码。
      

  8.   

    DLL也看了,没有什么特别的地方;有一个VC调用同样DLL的程序,可以正常的运行.可以确定出错的地方是在DLL调用VB定义的回调函数里头.但是为什么会这样就不理解了,在网上也很少有关于这个错误的资料.想不到解决的办法了. 
    兄弟们给点意见,看看能不能找到解决问题的方法.
      

  9.   

    你可以到你的代码中到处
    msgbox 1
    msgbox 2

    定位好在哪个地方出错?
    调用的地方? 回掉的地方? dll里面?
    你可以根据出错的指令  xxxx指令引用xxx内存错误 来判断个大概。