社区
Delphi
帖子详情
关于NTDLL.DLL出错的奇怪问题
needs
2009-08-16 10:35:50
DELPHI2007使用了FRAME,在IDE环境下运行正常,单独运行时就出现ntdll.dll的地址错误,不知有哪位大侠知道错误原因?
还有个情况,单独运行时出错后关闭,第二次运行就正常了
...全文
11627
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的使用。 案例: 有
问题
的...
NT
DLL
.
dll
4 : Load and Unload (ZT)
一、前言 在前一段时间,我遭遇了一个现象...MSDN里关于禁止在
Dll
Main里调用 LoadLibrary和FreeLibrary的解释过于含糊不清,所以我重温了一遍Russ Osterlund的"Windows 2000 Loader"一文,并仔细阅读了泄漏的Win20
SQL2000安装故障集锦
8、问:sql server 2000安装
出错
,无法找到动态链接库sqlunirl.
dll
安装文件肯定没有错,因为以前安装过,绝对可以用,机子之前有装了sql server 2000,而且可以正常使用,只是今天突然无法连接到本地数据库,打算...
内存溢出1
这个
问题
现在有所进展。大幅削减了Log输出后,已经4天没有crash了。由于用了一个第三方的Log工具,当时不知道这个Log工具会向 标准输出 也输出Log。怀疑非常频繁的输出大量的Log到控制台上JVM的处理有
问题
(也怀疑...
Windows内核初窥
API,如果你自己定位
NT
DLL
.
DLL
中的函数并进行调用,只要这个函数未被MS修改,可以肯定这种调用是成功的,你的程序运行也没有任何
问题
。与KERNEL32.
DLL
类似的还有一个ADVAPI32.
DLL
,提供一些比较高级的应用编程函数...
Delphi
5,938
社区成员
262,945
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章