社区
Delphi
帖子详情
关于NTDLL.DLL出错的奇怪问题
needs
2009-08-16 10:35:50
DELPHI2007使用了FRAME,在IDE环境下运行正常,单独运行时就出现ntdll.dll的地址错误,不知有哪位大侠知道错误原因?
还有个情况,单独运行时出错后关闭,第二次运行就正常了
...全文
11489
19
打赏
收藏
关于NTDLL.DLL出错的奇怪问题
DELPHI2007使用了FRAME,在IDE环境下运行正常,单独运行时就出现ntdll.dll的地址错误,不知有哪位大侠知道错误原因? 还有个情况,单独运行时出错后关闭,第二次运行就正常了
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
19 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
WWYWT
2010-06-25
打赏
举报
回复
测试似乎和IE版本有关 IE6没有问题 IE8有问题
WWYWT
2010-06-25
打赏
举报
回复
我也遇到这个问题 代码和楼主基本一样的 如果解决了麻烦也通知我一下 我QQ1478706 万分感谢
浮生若梦_平淡为真
2010-03-23
打赏
举报
回复
我也是遇到这样的问题啊
wxsan
2009-08-21
打赏
举报
回复
友情帮顶!
otmac
2009-08-21
打赏
举报
回复
我也遇到这问题,不知道啥原因,关注。
needs
2009-08-20
打赏
举报
回复
现在的问题是直接读图片文件没问题,图片文件编译成资源后再读就要出错,不知是不是代码哪里有问题
needs
2009-08-20
打赏
举报
回复
我已经参考过这篇文章,试过显式调用_AddRef,把GPBitmap改回GPImage等,除此以外我看与他的例子没有本质区别了
gyk120
2009-08-20
打赏
举报
回复
或许你应该参考下这个??
http://blog.csdn.net/maozefa/archive/2007/07/12/1685930.aspx
needs
2009-08-20
打赏
举报
回复
FRAME是编译在主EXE的,读取RC文件也一样
needs
2009-08-20
打赏
举报
回复
现在可以确定是和读取图片的这段代码有关
procedure LoadImageFromRes(var AImage: TGPBitmap; const AResName, AResType: string);
var
lStream: TStream;
lStramAdapter: TStreamAdapter;
begin
AImage:= nil;
lStream := TResourceStream.Create(HInstance, AResName, PAnsiChar(AResType));
try
lStramAdapter:= TStreamAdapter.Create(lStream);
try
AImage:= TGPBitmap.Create(lStramAdapter); 《----使用这句时出错
//AImage:= TGPBitmap.Create('Down.png'); 〈---使用这句就不出错
finally
lStramAdapter:= nil;
end;
finally
lStream.Free;
end;
end;
如果使用lStramAdapter就会出现NTDLL。DLL的错误,直接读取文件就不出错
这是为什么?
wooden954
2009-08-20
打赏
举报
回复
非常同意4楼观点
gyk120
2009-08-20
打赏
举报
回复
FRAME编译到了DLL里面还是EXE里面?
读取资源DLL出错,你把资源DLL的资源提取出来做成rc文件调用会不会出错?
needs
2009-08-19
打赏
举报
回复
可以确定是在读取资源DLL中的图片并绘制到窗口界面时出错
出错以后系统需要自动重绘时不再出错
wintergoes
2009-08-18
打赏
举报
回复
全都加上日志输出
看看是哪抛出的异常
needs
2009-08-17
打赏
举报
回复
我是在WIN2003系统下,不确定是哪一句代码出问题,关键是调试时不会出错
而且运行一次出错后再运行就不再出错
可能与图片读取和绘制有关
也可能和COM有关
阿呆_
2009-08-17
打赏
举报
回复
你说的问题我遇到过很多次了。如果你程序是在Vista或者win7系统下,退出时报NTDLL.DLL读取非法内存。那么就可能是我遇到的原因(有意思的是开始我们的程序在Win7 64和Vista 32下会报错,改了别的东西重新编译后变成在Win7 32和Vista 64下出错了)。 我发觉原因可能是因为Vista和Win7中某些COM组件的实现和DELPHI的COM实现不兼容。而且问题一般出现在你delphi程序调用了Vista以上版本的新形式的Open/SaveDialog,不管你在Dialog中选确定还是取消,就会有很大机会在程序退出时报错,具体错误是在程序退出时卸载oleauto.dll时释放COM组件时访问了已经释放的内存而造成的,说明某个COM组件的引用计数已经乱了。
改正方法有两个,一是不使用Vista提供的Common Item Dialog组件而仍然使用XP的Common Dialog方式来建立Open/Save 对话框,即调用Open/SaveDialogBox.Execute前先设置Dialogs.UseLatestCommonDialogs:=False; 二是用VS写个调用Common Item Dialog实现Open/Save对话框的dll然后给delphi调用。
cnhxjtoa
2009-08-17
打赏
举报
回复
这个问题只有LZ自己才能解决,没有代码呢。。。。
gyk120
2009-08-16
打赏
举报
回复
NTDLL错误一般是和系统交互出现了问题,没有说是哪个函数吗?那样只能调试下断点看看
mathsfan
2009-08-16
打赏
举报
回复
我也经常碰到这样的情况,好象跟你写的代码有关系,有时我改过代码以后就不会出现ntdll.dll错误了。
祝你好运。
C++ VS2015提示未加载 w
nt
dll
.pdb
报错信息: 未加载w
nt
dll
.pdb,下面的框架可能不正确/或缺失,没有为
nt
dll
.
dll
加载符号。
出错
原因: 你的指针指向了错误的东西 / 你调用你的指针释放了
奇怪
的内容,和内存的调用有很大的关系,比如new的使用。 案例: 有
问题
的代码: #include<iostream> #include<ctime> #include<fstream> #include<string> #include<stack> #include<v
SQL2000安装故障集锦
sql server 2000以前的版本,例如7.0一般不存在多个版本,只有标准版跟桌面版,用户如果不清楚该装什么版本的话,可按安装上的安装先决条件指示安装,一般在WIN2000服务器版上装标准版,其他的系统装桌面版的就可以; 一、不同的操作系统支持的SQL Server 2000版本以及对硬件的要求。 Windows 2000 Server可以安装SQL Ser...
NT
DLL
.
dll
4 : Load and Unload (ZT)
一、前言 在前一段时间,我遭遇了一个现象诡异的Bug,最后原因归结 为在
Dll
Main里错误地调用了FreeLibrary(在本文最后对此Bug有详细的解释)。MSDN里关于禁止在
Dll
Main里调用 LoadLibrary和FreeLibrary的解释过于含糊不清,所以我重温了一遍Russ Osterlund的"Windows 2000 Loader"一文,并仔细阅读了泄漏的Win20
内存溢出1
呵呵 很感谢olivesoup和xql80329的关心。这个
问题
现在有所进展。大幅削减了Log输出后,已经4天没有crash了。由于用了一个第三方的Log工具,当时不知道这个Log工具会向 标准输出 也输出Log。怀疑非常频繁的输出大量的Log到控制台上JVM的处理有
问题
(也怀疑本身频繁的输出大量的Log到文件中JVM的处理有
问题
)。(每1秒钟就输出170k的Log)。
是不是这个原因还不能最终确定(因为时间还不够长,不能保证真的没有
问题
了)。
另外,有一
Windows内核初窥
每天我们都在使用Windows系统学习、编程、听音乐、玩游戏,Windows的操作想来是很熟练了,可是你又对Windows到底了解多少呢?本系列的目的,就是让你对Windows系统有个更直观、更清楚、更彻底的认识。虽然我们大多数人看不到Windows的源码,对其内存调度算法这种最深层次的技术内幕不能明窥,但是我们可以做到比现在知道的更多,了解这些之后你会发现在Windows上面开发会轻车熟路,任何
Delphi
5,386
社区成员
262,729
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章