让人很抑郁的问题,请大侠进来看看

lizhijie282 2010-02-25 03:29:04
小弟写了一个基于dialog的MFC程序,里面调用了LED屏的二次开发动态库,编译通过,运行没有问题.
之后我又增加了网络通信的模块,也是调用动态库的函数,此时编译通过,一运行就出现错误,提示"应用程序正常初始化(0xc0000005)失败。",单步调试运行也不行,提示“unhandled exception in XXX.exe(NTDLL.DLL):0x00000005:Access Violation”。
将网络通信的调用注释掉后可以运行。将LED调用注释掉,只保留网络通信的模块,也可以运行。

跪求解决方案.
...全文
157 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
低调的狮子 2010-02-25
  • 打赏
  • 举报
回复
以前碰到过类似的,就是两个被调用的库如果生成方式不一样的情况下也会造成内存冲突的!比如说一个是Release版本的一个是Debug版本的!
lizhijie282 2010-02-25
  • 打赏
  • 举报
回复
引用 18 楼 wizardk 的回复:
引用 17 楼 lizhijie282 的回复:
引用 15 楼 wangyt 的回复:
这两个库是用同一版本的编译器编译的吗?
如果编译器不同,lib可能就不兼容。比方说MS与borland的编译器产生的lib格式就不兼容。
网络库是用MS编译的,LED的库有VC的Demo程序,应该也是用MS编译的

看你说的,库是没有问题的,应该就是个小毛病,你再仔细查下

设断点,再F5,再F10,就崩溃了?

在APP的构造函数(构造函数是空的)和InitInstance里设置断点,按F10就崩溃了
WizardK 2010-02-25
  • 打赏
  • 举报
回复
引用 17 楼 lizhijie282 的回复:
引用 15 楼 wangyt 的回复:
这两个库是用同一版本的编译器编译的吗?
如果编译器不同,lib可能就不兼容。比方说MS与borland的编译器产生的lib格式就不兼容。
网络库是用MS编译的,LED的库有VC的Demo程序,应该也是用MS编译的


看你说的,库是没有问题的,应该就是个小毛病,你再仔细查下

设断点,再F5,再F10,就崩溃了?
lizhijie282 2010-02-25
  • 打赏
  • 举报
回复
引用 15 楼 wangyt 的回复:
这两个库是用同一版本的编译器编译的吗?
如果编译器不同,lib可能就不兼容。比方说MS与borland的编译器产生的lib格式就不兼容。

网络库是用MS编译的,LED的库有VC的Demo程序,应该也是用MS编译的
lizhijie282 2010-02-25
  • 打赏
  • 举报
回复
引用 14 楼 wizardk 的回复:
引用 9 楼 lizhijie282 的回复:
引用 5 楼 youhao1999 的回复:
内存泄露?看看指针是否声明,是否释放
还没有到调用的函数的时候,程序就崩溃了..

那调试的时候也能定位啊,从入口函数开始跟

我一按F10 程序就崩溃了.
一名程序员 2010-02-25
  • 打赏
  • 举报
回复
这两个库是用同一版本的编译器编译的吗?
如果编译器不同,lib可能就不兼容。比方说MS与borland的编译器产生的lib格式就不兼容。
WizardK 2010-02-25
  • 打赏
  • 举报
回复
引用 9 楼 lizhijie282 的回复:
引用 5 楼 youhao1999 的回复:
内存泄露?看看指针是否声明,是否释放
还没有到调用的函数的时候,程序就崩溃了..


那调试的时候也能定位啊,从入口函数开始跟
lizhijie282 2010-02-25
  • 打赏
  • 举报
回复
引用 11 楼 powerlly 的回复:
检查编译选项(可能是运行时库设置不一致导致)

可否具体说明一下?谢谢
lizhijie282 2010-02-25
  • 打赏
  • 举报
回复
引用 10 楼 zhou1xp 的回复:
你单独调用网络的lib行么,如果行你把两个lib都放在工程设置中看怎么样

我单独调用网络库和LED的库都是没有问题的,我把两个库都放到工程设置中,也不行
powerlly 2010-02-25
  • 打赏
  • 举报
回复
检查编译选项(可能是运行时库设置不一致导致)
zhou1xp 2010-02-25
  • 打赏
  • 举报
回复
你单独调用网络的lib行么,如果行你把两个lib都放在工程设置中看怎么样
lizhijie282 2010-02-25
  • 打赏
  • 举报
回复
引用 5 楼 youhao1999 的回复:
内存泄露?看看指针是否声明,是否释放

还没有到调用的函数的时候,程序就崩溃了..
WizardK 2010-02-25
  • 打赏
  • 举报
回复
引用楼主 lizhijie282 的回复:
小弟写了一个基于dialog的MFC程序,里面调用了LED屏的二次开发动态库,编译通过,运行没有问题.
之后我又增加了网络通信的模块,也是调用动态库的函数,此时编译通过,一运行就出现错误,提示"应用程序正常初始化(0xc0000005)失败。",单步调试运行也不行,提示“unhandled exception in XXX.exe(NTDLL.DLL):0x00000005:Access Violation”。
将网络通信的调用注释掉后可以运行。将LED调用注释掉,只保留网络通信的模块,也可以运行。

跪求解决方案.


单独都没有问题,两个模块有关联吗?如果没有,那么就是你结构设计有冲突。调试下不能定位吗?
lizhijie282 2010-02-25
  • 打赏
  • 举报
回复
引用 4 楼 wangyt 的回复:
可能跟你在VC中引入库的设置中有问题。应该是工程设置的问题。

LED的lib是在project->settings->link里面引的
网络的lib是在头文件里#pragma comment(lib, "XXX.lib")引的
这样会产生问题吗?
lizhijie282 2010-02-25
  • 打赏
  • 举报
回复
引用 3 楼 stjay 的回复:
MFC,c/c++运行时库冲突?缺文件?
两个模块用什么语言编写的?MFC?6.0?2005?2008?
Depend看看导入DLL

DLL是用VC6.0写的
youhao1999 2010-02-25
  • 打赏
  • 举报
回复
内存泄露?看看指针是否声明,是否释放
一名程序员 2010-02-25
  • 打赏
  • 举报
回复
可能跟你在VC中引入库的设置中有问题。应该是工程设置的问题。
stjay 2010-02-25
  • 打赏
  • 举报
回复
MFC,c/c++运行时库冲突?缺文件?
两个模块用什么语言编写的?MFC?6.0?2005?2008?
Depend看看导入DLL
lizhijie282 2010-02-25
  • 打赏
  • 举报
回复
引用 1 楼 wuchuncai 的回复:
内存冲突吧。仔细查查原因。

我在APP的构造函数(构造函数是空的)和InitInstance里设置断点都进不去,一按F10就出现错误了.我不知道改怎么调试了.我还想问一下哪些操作会引起内存冲突呢?
wuchuncai 2010-02-25
  • 打赏
  • 举报
回复
内存冲突吧。仔细查查原因。

16,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧