DLL的调试过程中遇到的问题???(各位大虾救命!!!!!)

时间:2022-10-30 18:29:12
自己参考以前的应用程序的例子修改成了一个dll的工程,因为要生成dll在其他语言平台(LabVIEW)上调用,但现在虽然编译通过了,但不能正常运行,所以想调试一下,但在调试过程中出现了一下提示,然后就进行不下去了,而程序也是在这儿死掉的!请各位大虾帮我看看这是怎么回事?小弟对这方面不太熟悉,看不懂错误提示的意思?出现这种错误又该如何解决呢?先谢过啦!

//bow

(注:前面很多调用已经省略了,和开始的两行是类似的)

Loaded 'C:\WINDOWS\SYSTEM32\netui0.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\SYSTEM32\netui1.dll', no matching symbolic information found.
Loaded symbols for 'C:\WINDOWS\SYSTEM32\MSVCRTD.DLL'
First-chance exception in LabVIEW.exe (COUNTER1.DLL): 0xC0000005: Access Violation.
First-chance exception in LabVIEW.exe (COUNTER1.DLL): 0xC0000005: Access Violation.

6 个解决方案

#1


一般是指针的问题。

#2


VC6.0里弹出提示框后,按确定后程序会在出现问题的地方停下来,然后就在以发现问题了。

#3


好象确实是指针的问题,但我却不知道如何去改动指针,因为在这儿调用了一个
   *phDeviceHandle = CreateFile(   completeDeviceName,
      GENERIC_WRITE,
      FILE_SHARE_WRITE,
      NULL,
      OPEN_EXISTING,
      0,
      NULL);
而这是在地层的驱动中做的事情,在应用程序中该段代码可以完好的通过编译并运行,但在我修改过后的dll中却在这儿出现了问题!
调试中停止的位置就是在上面这段代码的最后一行上,会是什么问题呢???
谢谢两位的回答!

#4


好象确实是指针的问题,但我却不知道如何去改动指针,因为在这儿调用了一个
   *phDeviceHandle = CreateFile(   completeDeviceName,
      GENERIC_WRITE,
      FILE_SHARE_WRITE,
      NULL,
      OPEN_EXISTING,
      0,
      NULL);
而这是在地层的驱动中做的事情,在应用程序中该段代码可以完好的通过编译并运行,但在我修改过后的dll中却在这儿出现了问题!
调试中停止的位置就是在上面这段代码的最后一行上,会是什么问题呢???
谢谢两位的回答!

#5


我做DLL的,但没有见过这中问题,不好意思。

#6


请问zhang865(笨秀才)dll怎么调试呢?如果还没有应用程序调用他的话?一定要自己先写一个应用程序出来才能调试对吗???
我在参考书上看到这样一段话 “用户可以在动态连接库项目中增加一个子项目,在子项目中调用dll中的函数。此时就可以使用设置断点等常规操作”
对于以上方法其他说明在没有了,所以不是很理解!还请指点一二!
多谢多谢!

#1


一般是指针的问题。

#2


VC6.0里弹出提示框后,按确定后程序会在出现问题的地方停下来,然后就在以发现问题了。

#3


好象确实是指针的问题,但我却不知道如何去改动指针,因为在这儿调用了一个
   *phDeviceHandle = CreateFile(   completeDeviceName,
      GENERIC_WRITE,
      FILE_SHARE_WRITE,
      NULL,
      OPEN_EXISTING,
      0,
      NULL);
而这是在地层的驱动中做的事情,在应用程序中该段代码可以完好的通过编译并运行,但在我修改过后的dll中却在这儿出现了问题!
调试中停止的位置就是在上面这段代码的最后一行上,会是什么问题呢???
谢谢两位的回答!

#4


好象确实是指针的问题,但我却不知道如何去改动指针,因为在这儿调用了一个
   *phDeviceHandle = CreateFile(   completeDeviceName,
      GENERIC_WRITE,
      FILE_SHARE_WRITE,
      NULL,
      OPEN_EXISTING,
      0,
      NULL);
而这是在地层的驱动中做的事情,在应用程序中该段代码可以完好的通过编译并运行,但在我修改过后的dll中却在这儿出现了问题!
调试中停止的位置就是在上面这段代码的最后一行上,会是什么问题呢???
谢谢两位的回答!

#5


我做DLL的,但没有见过这中问题,不好意思。

#6


请问zhang865(笨秀才)dll怎么调试呢?如果还没有应用程序调用他的话?一定要自己先写一个应用程序出来才能调试对吗???
我在参考书上看到这样一段话 “用户可以在动态连接库项目中增加一个子项目,在子项目中调用dll中的函数。此时就可以使用设置断点等常规操作”
对于以上方法其他说明在没有了,所以不是很理解!还请指点一二!
多谢多谢!