有谁遇到过这种怪问题??

时间:2021-07-08 20:58:31
我写了一个程序,调用了别人的一个动态库,我的程序使用F5,进行Debug跟踪调试的时候,程序没有问题,但是,不使用VC的Debug进行加载,直接运行程序就会报错,我的同事也使用这个动态库,它的就很好,没有问题.我想应该不是动态库的问题,一定是Debug加载和普通程序运行有什么不同!或者是DLL加载的问题,但是我有不知道答案.各位谁能帮忙??

另外我写了一个SDI工程的程序,没添加其他的东西,我只在CMainFrame中加了一个我自定义的类的公用变量.没对他进行任何操作,在进行程序关闭的时候,系统就会冬的想一声,就像有非法操作一样.谁能帮忙

10 个解决方案

#1


我的程序使用F5,进行Debug跟踪调试的时候,程序没有问题,但是,不使用VC的Debug进行加载,直接运行程序就会报错.
=========================================
Debug是的运行路径时该Debug目录,而直接运行时,运行目录是DEBUG的上一层目录,也就是工程所在的目录。我不知道你说的错误是不是找不到DLL了,如果是,那就是路径不对了。


只在CMainFrame中加了一个我自定义的类的公用变量.没对他进行任何操作,在进行程序关闭的时候,系统就会冬的想一声,就像有非法操作一样
=================================================
不知道你说的是什么错误。详细一点。

#2


从资源管理器里运行的时候,当前目录是程序所在目录;从IDE环境运行的时候,比如DEBUG的时候,当前目录是工程文件所在目录。

这个自定义的类里面很可能存在资源泄露。

#3


你的程序是否使用了多线程?

那个DLL是否线程安全的?

你是否有公用的资源,使用时是否锁定?

#4


可能你需要得到当前的程序路径后,再加载一些东西
TCHAR szCurPath[MAX_PATH];



memset(szCurPath, 0, MAX_PATH);

GetModuleFileName(NULL, szCurPath, sizeof(szCurPath)/sizeof(TCHAR));

#5


当前运行目录的问题,把你的DLL和EXE放到一个目录下,第二个问题需要更多信息

#6


第一个问题,我知道执行路径有差别,肯定不存在动态库加载不上的问题
大家帮忙从其他地方考虑,

第二个问题,我也考虑了资源泄露的问题,但是,我的类没有分配内存空间
大家也从其他地方考虑一下

谢谢了

#7


第一个问题
1.还是有可能是相对路径的问题,可能是数据文件加载的问题。
2.有可能是同步的问题,检查多线程,PostMessage,Invalidate之类的调用

#8


第二个问题你说的太含糊了

#9


我看极有可能是你的程序代码有问题,特别是指针,你仔细检查

#10


报错的地方看看,检查一下对应部分的代码等

#1


我的程序使用F5,进行Debug跟踪调试的时候,程序没有问题,但是,不使用VC的Debug进行加载,直接运行程序就会报错.
=========================================
Debug是的运行路径时该Debug目录,而直接运行时,运行目录是DEBUG的上一层目录,也就是工程所在的目录。我不知道你说的错误是不是找不到DLL了,如果是,那就是路径不对了。


只在CMainFrame中加了一个我自定义的类的公用变量.没对他进行任何操作,在进行程序关闭的时候,系统就会冬的想一声,就像有非法操作一样
=================================================
不知道你说的是什么错误。详细一点。

#2


从资源管理器里运行的时候,当前目录是程序所在目录;从IDE环境运行的时候,比如DEBUG的时候,当前目录是工程文件所在目录。

这个自定义的类里面很可能存在资源泄露。

#3


你的程序是否使用了多线程?

那个DLL是否线程安全的?

你是否有公用的资源,使用时是否锁定?

#4


可能你需要得到当前的程序路径后,再加载一些东西
TCHAR szCurPath[MAX_PATH];



memset(szCurPath, 0, MAX_PATH);

GetModuleFileName(NULL, szCurPath, sizeof(szCurPath)/sizeof(TCHAR));

#5


当前运行目录的问题,把你的DLL和EXE放到一个目录下,第二个问题需要更多信息

#6


第一个问题,我知道执行路径有差别,肯定不存在动态库加载不上的问题
大家帮忙从其他地方考虑,

第二个问题,我也考虑了资源泄露的问题,但是,我的类没有分配内存空间
大家也从其他地方考虑一下

谢谢了

#7


第一个问题
1.还是有可能是相对路径的问题,可能是数据文件加载的问题。
2.有可能是同步的问题,检查多线程,PostMessage,Invalidate之类的调用

#8


第二个问题你说的太含糊了

#9


我看极有可能是你的程序代码有问题,特别是指针,你仔细检查

#10


报错的地方看看,检查一下对应部分的代码等