另外我写了一个SDI工程的程序,没添加其他的东西,我只在CMainFrame中加了一个我自定义的类的公用变量.没对他进行任何操作,在进行程序关闭的时候,系统就会冬的想一声,就像有非法操作一样.谁能帮忙
10 个解决方案
#1
我的程序使用F5,进行Debug跟踪调试的时候,程序没有问题,但是,不使用VC的Debug进行加载,直接运行程序就会报错.
=========================================
Debug是的运行路径时该Debug目录,而直接运行时,运行目录是DEBUG的上一层目录,也就是工程所在的目录。我不知道你说的错误是不是找不到DLL了,如果是,那就是路径不对了。
只在CMainFrame中加了一个我自定义的类的公用变量.没对他进行任何操作,在进行程序关闭的时候,系统就会冬的想一声,就像有非法操作一样
=================================================
不知道你说的是什么错误。详细一点。
=========================================
Debug是的运行路径时该Debug目录,而直接运行时,运行目录是DEBUG的上一层目录,也就是工程所在的目录。我不知道你说的错误是不是找不到DLL了,如果是,那就是路径不对了。
只在CMainFrame中加了一个我自定义的类的公用变量.没对他进行任何操作,在进行程序关闭的时候,系统就会冬的想一声,就像有非法操作一样
=================================================
不知道你说的是什么错误。详细一点。
#2
从资源管理器里运行的时候,当前目录是程序所在目录;从IDE环境运行的时候,比如DEBUG的时候,当前目录是工程文件所在目录。
这个自定义的类里面很可能存在资源泄露。
这个自定义的类里面很可能存在资源泄露。
#3
你的程序是否使用了多线程?
那个DLL是否线程安全的?
你是否有公用的资源,使用时是否锁定?
那个DLL是否线程安全的?
你是否有公用的资源,使用时是否锁定?
#4
可能你需要得到当前的程序路径后,再加载一些东西
TCHAR szCurPath[MAX_PATH];
memset(szCurPath, 0, MAX_PATH);
GetModuleFileName(NULL, szCurPath, sizeof(szCurPath)/sizeof(TCHAR));
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之类的调用
1.还是有可能是相对路径的问题,可能是数据文件加载的问题。
2.有可能是同步的问题,检查多线程,PostMessage,Invalidate之类的调用
#8
第二个问题你说的太含糊了
#9
我看极有可能是你的程序代码有问题,特别是指针,你仔细检查
#10
报错的地方看看,检查一下对应部分的代码等
#1
我的程序使用F5,进行Debug跟踪调试的时候,程序没有问题,但是,不使用VC的Debug进行加载,直接运行程序就会报错.
=========================================
Debug是的运行路径时该Debug目录,而直接运行时,运行目录是DEBUG的上一层目录,也就是工程所在的目录。我不知道你说的错误是不是找不到DLL了,如果是,那就是路径不对了。
只在CMainFrame中加了一个我自定义的类的公用变量.没对他进行任何操作,在进行程序关闭的时候,系统就会冬的想一声,就像有非法操作一样
=================================================
不知道你说的是什么错误。详细一点。
=========================================
Debug是的运行路径时该Debug目录,而直接运行时,运行目录是DEBUG的上一层目录,也就是工程所在的目录。我不知道你说的错误是不是找不到DLL了,如果是,那就是路径不对了。
只在CMainFrame中加了一个我自定义的类的公用变量.没对他进行任何操作,在进行程序关闭的时候,系统就会冬的想一声,就像有非法操作一样
=================================================
不知道你说的是什么错误。详细一点。
#2
从资源管理器里运行的时候,当前目录是程序所在目录;从IDE环境运行的时候,比如DEBUG的时候,当前目录是工程文件所在目录。
这个自定义的类里面很可能存在资源泄露。
这个自定义的类里面很可能存在资源泄露。
#3
你的程序是否使用了多线程?
那个DLL是否线程安全的?
你是否有公用的资源,使用时是否锁定?
那个DLL是否线程安全的?
你是否有公用的资源,使用时是否锁定?
#4
可能你需要得到当前的程序路径后,再加载一些东西
TCHAR szCurPath[MAX_PATH];
memset(szCurPath, 0, MAX_PATH);
GetModuleFileName(NULL, szCurPath, sizeof(szCurPath)/sizeof(TCHAR));
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之类的调用
1.还是有可能是相对路径的问题,可能是数据文件加载的问题。
2.有可能是同步的问题,检查多线程,PostMessage,Invalidate之类的调用
#8
第二个问题你说的太含糊了
#9
我看极有可能是你的程序代码有问题,特别是指针,你仔细检查
#10
报错的地方看看,检查一下对应部分的代码等