几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量

几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 (http://www.dimcax.com/hust/index.php)
-   DirectDWG (http://www.dimcax.com/hust/forumdisplay.php?f=89)
-   -   【转帖】exception exporting dimensions with amd64 libs (http://www.dimcax.com/hust/showthread.php?t=16141)

yang686526 2009-05-05 09:56 AM

【转帖】exception exporting dimensions with amd64 libs
 
exception exporting dimensions with amd64 libs
exception exporting dimensions with amd64 libs
i am using version 2.06_8. i have a win32 and amd64 version of my application.
when i try to export dimensions using the amd64 libraries, i get an exception within the odrxsystemservices::loadmodule method. the call stack looks like the following...
kernel32.dll!0000000077d4dd10()
[frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]
msvcr80.dll!000000000066b1c4()
impexpacad.dll!odrxsystemservices::loadmodule() + 0x40 bytes c++
impexpacad.dll!odrxdynamiclinkerimpl::loadmodule() + 0x205 bytes c++
impexpacad.dll!odrxdynamiclinkerimpl::loadapp() + 0x5e bytes c++
impexpacad.dll!oddbdimensionrecomputepeloader::get recomputer() + 0x52 bytes c++
impexpacad.dll!oddbdimensionrecomputepeloader::rec omputedimblock() + 0x27 bytes c++
impexpacad.dll!oddbdimensionimpl::recomputedimbloc k() + 0x25a bytes c++
impexpacad.dll!oddbdimension::recomputedimblock() + 0xac bytes c++
impexpacad.dll!oddbdimension::subclose() + 0x53 bytes c++
impexpacad.dll!oddbobject::downgradeopen() + 0x7a bytes c++
impexpacad.dll!oddbobject::release() + 0x3a bytes c++
impexpacad.dll!oddbobjectimpl::fire_modified() + 0x56b bytes c++
impexpacad.dll!oddbobject::xmitpropagatemodify() + 0x1c4 bytes c++
impexpacad.dll!oddbobject::downgradeopen() + 0x92 bytes c++
impexpacad.dll!oddbobject::release() + 0x3a bytes c++
impexpacad.dll!oddbwrapper::exportdimension(odsmar tptr<oddbdatabase>
the x64 version of my application includes the following libs from the amd64md folder.
dd_amd64md_alloc.lib
dd_amd64md_gi.lib
dd_amd64md_db.lib
dd_amd64md_dbroot.lib
dd_amd64md_ge.lib
dd_amd64md_gs.lib
dd_amd64md_root.lib
dd_amd64md_spatialindex.lib
dd_amd64md_ft.lib
dd_amd64md_dummyrecomputedimblock.lib
i tried just including all the rest of the libs under the amd64md folder, but it didn't help.
does anyone have any ideas what the problem might be?
thanks.
-bill
do you have a static module declaration for "recomputedimblock"?
vladimir
yes, i tried including dd_amd64md_dummyrecomputedimblock.lib and also tried
dd_amd64md_recomputedimblock.lib .
i mean - do you have a declaration like
odrx_declare_static_module_entry_point(odrecompute dimblockmodule);
odrx_define_static_appmodule(l"recomputedimblock.d rx", odrecomputedimblockmodule)
vladimir
no. i don't. i guess i need to include that.
could you point me at the documentation for what needs to be done?
i am trying to use the amd64 libraries...so i don't have the recomputedimblock.drx.
rather, i have the dd_amd64md_recomputedimblock.lib. isn't the drx file a dynamic link library?
looking at the examples, i don't see any that have been setup for the x64 platform. do you have any?
thanks.
i added
odrx_declare_static_module_entry_point(odrecompute dimblockmodule);
odrx_define_static_appmodule(l"recomputedimblock", odrecomputedimblockmodule)
to my dll. i'm still getting the error when trying to export dimensions to dwg. actually, a dialog saying, error :file not found
appears.
using modules in statically linked configuration is described in developer's guide:
- working with applications / creating custom applications / static use of custom applications:
static use of custom applications
support for a custom application can be linked statically into an application if desired. this can be done for the customobjectsmodule example defined above, by including the following macros in the program that will be using the custom application:
#ifndef _toolkit_in_dll_
// declare the entry point function for the custom module (one for each module).
odrx_declare_static_module_entry_point(customobjec tsmodule);
odrx_declare_static_module_entry_point(modelermodu le);
odrx_begin_static_module_map()
odrx_define_static_application("excustobjs", customobjectsmodule)
odrx_define_static_application("modelergeometry", modelermodule)
odrx_end_static_module_map()
#endif
after the static module map has been declared, the dwgdirect client application should call the odrx_init_static_module_map macro once to initialize the static module map. this should be done before odinitialize, for example:
#ifndef _toolkit_in_dll_
odrx_init_static_module_map();
#endif
odinitialize(this);
once these calls have been made, the registered custom module will be loaded on demand (for example, when this module is needed to serialize a custom object), or it can be loaded explicitly by calling odrxdynamiclinker::loadmodule and passing the application name that was registered in the first argument to odrx_define_static_application.
sergey slezkin


所有的时间均为北京时间。 现在的时间是 11:10 PM.