几何尺寸与公差论坛------致力于产品几何量公差标准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)
-   -   【转帖】visual Studio 2008 Vc9 (http://www.dimcax.com/hust/showthread.php?t=19039)

yang686526 2009-05-07 06:36 PM

【转帖】visual Studio 2008 Vc9
 
visual studio 2008 / vc9
visual studio 2008 / vc9
hello,
can you tell me when dwgdirect library will be available for visual studio 2008 / vc9?
thanks,
michael
perhaps 2.5 will contain vc 2008 binaries.
there should be no problem using vc 2005 libs though.
vladimir
i'm using the dwgdirect dlls (_toolkit_in_dll_), so i had to include _msc_ver == 1500 into ddversion.h to make it work:
...
#elif _msc_ver == 1400 || _msc_ver == 1500
#define dd_dll_version_suffix_str l"_"##dd_stringize(dd_major_version.dd_minor_versi on)##l"_8"
...
this seems to works for release builds. debug builds however report memory glitches when calling
[call stack]
...
msvcr80d.dll!_crtisvalidheappointer(...)
...
dd_alloc_2.04_8.dll!031f1130()
...
i guess this is caused by calling crtisvalidheappointer() in a vc8 dll (msvcr80d.dll) from a vc9 application.
i did it!
hello,
i had the same problem yesterday.
in my case, i'm using visual studio 2008 rtm and i'm linking with the static version of the libraries (for version 2005) and i'm creating a dll that expose my own objects to manipulate dwg files.
the problem comes with the debug version of my library. when i try to load the library with afxloadlibrary, the function returns null and the formatmessage for the getlasterror inform me with the message: "unable to load dll, specified module could not be found".
using dependency walker i can see the system is unable to found msvcr90.dll and msvcr90d.dll.
why msvcr90.dll version of the crt if my library is debug?. maybe because the opendesign libs are release but it should be binded with msvcr80.dll.
inmediatly i've opened my dll with visual studio to see the manifest resource, and (copy/paste to notepad) i can see my project depends of microsoft.vc90.debugcrt, microsoft.vc90.debugmfc and microsoft.vc80.crt as expected. logically there is not reference to microsoft.vc90.crt because my dll is debug. the reference to microsoft.vc80.crt is inherit to the opendesign libraries (vs2005 release).
then why dependency walker tell me that my project depends of microsoft.vc90.crt?
i don't know yet. perhaps there is a policy that redirects microsoft.vc80.crt to microsoft.vc90.crt or something like that, but the problem is that windows don't know how to found the correct dlls because it need the name, processor architecture, public key token, ... so i decided to add the next three lines to the stdafx.cpp file of my dll:
code:
#ifdef _debug
#pragma comment(linker, "\"/manifestdependency:type='win32' name='microsoft.vc90.crt' version='9.0.21022.8' processorarchitecture='x86' publickeytoken='1fc8b3b9a1e18e3b' language='*'\"")
#endifmore information in
and now it works!


所有的时间均为北京时间。 现在的时间是 08:17 AM.