高级会员
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
|
【转帖】access violation while exploding block reference
access violation while exploding block reference
access violation while exploding block reference
i am using dwgdirect 1.10, update 1 and visual c++ 6.0. i get an access violation when i attempt to load a particular autocad 2000 format dwg file. the file has external references to the other two files, and it appears that the exception happens when i call oddbblockreference::explode() on the block reference that points to the first external reference. i have been able to reproduce the problem using the odreadex sample (modified so that the block reference dumper class calls explode) and with the mfc sample.
i attempted to attach the files that cause the problem to this message, but i was unable to do so. if someone can look at this problem, please send me a private message (or reply here) with your e-mail address, and i will send you the file directly. also, let me know if you need the file in a format other than zip.
this does not occur on all external references, so i expect that there may be something about this specific dwg file that is causing the crash. i can load the file in autocad without problem.
thanks,
bob
you can e-mail the files to me. i will look into the problem.
sslezkin_at_softdev.spb.ru
replace _at_ with @, please.
zip would be ok.
sergey slezkin
problem is fixed. fix will be available in 1.11 update or in 1.12.
sincerely yours,
george udov
hello.
i downloaded version 1.11.01.00, and i am still having problems with oddbblockreference::explode() when loading a reference to this particular file. was this fix supposed to be in the new version? instead of "access violation" exceptions, i am now getting "float invalid operation" exceptions being thrown from oddbblockreference::explode().
i tried to attach a .zip file containing the .dwg files that cause the problem, but was unable to do so. if you post an e-mail address, i will send the file directly.
bob
bob,
i cannot reproduce this problem. i explode blockreference with handle 4e03 (historic.dwg) in odamfcapp, and i can't get any "float invalid operation" exceptions.
the questions are:
1) am i explode correct blockreference?
2) are you able to reproduce the problem in odamfcapp?
3) are you use lib version or dll? debug or release?
sincerely yours,
george udov
the previous files you sent (historic.dwg) work ok for me.
do you mean other particular files?
you can use my e-mail for sending them.
sergey slezkin
thanks for the quick replies.
historic.dwg is the correct file. it has a cross reference to topo-8.dwg, and this is where i run into problems. i even had problems loading topo-8.dwg by itself (i.e., not as a cross reference.)
i was able to load the files using odamfcappdll, and i am using the dll version of dwgdirect in a debug build. since i didn't have the same problem with the sample application, i will recheck my build settings to make sure i am using the correct libs and dlls, and let you know if i am still haveing trouble.
this is the only file that has had this problem.
bob
one more piece of information...the exception happens on a block reference with handle=51d0 in file topo-8.dwg. there appear to be quite a few references to this block, and this is the first one.
bob
i double-checked my build settings and dwgdirect files. my build settings specify the correct include and lib paths, and i have the latest files (headers, libs, and dlls) in place. i don't think i mentioned that the program i am working on is an activex control, if that makes any difference.
i built a version of the odareadex sample program that uses dlls and explodes all block references, and it had no problem with this file. this would seem to indicate that the exception is a side-effect of something i am doing, so i will have to keep looking.
any suggestions you might have will be appreciated.
thanks,
bob
|