Thread: RE: [GD-General] Missing DLL: MSVCP70.DLL
Brought to you by:
vexxed72
From: Gareth W. <gar...@ro...> - 2003-06-22 15:05:11
|
http://sparks.discreet.com/news/index.cfm?f=3D2&step=3D2&news_id=3D88 "To accommodate for development of 3ds max 5.1 plug-ins using the VC7 = development environment, Discreet has developed a system to address the = incompatibility between the VC7 memory subsystem and 3ds max, which is = VC6 native.=20 Developers can employ this solution by including the MAX_Mem.h header = (download below) in their plug-in project, which serves as a replacement = for malloc.h, new.h and crtdbg.h. The result is to redirect memory = allocation and de-allocation functions into equivalents implemented in = the 3ds max core, operating on a VC6 native heap." ---------------------------------- BSc (Hons) Gareth White senior programmer ROCKSTAR VIENNA www.rockstarvienna.com *** Please be aware that all content of this email *** *** plus its attachments are strictly confidential *** -----Original Message----- From: Ignacio Casta=F1o [mailto:cas...@ya...]=20 Sent: Sonntag, 22. Juni 2003 16:04 To: gam...@li... Subject: Re: [GD-General] Missing DLL: MSVCP70.DLL Colin Fahey wrote: > (A) Can I compile with MSVC7.0 and yet only require > users to have MSVC6.0 DLLs? 3dsmax dlls are built using msvc6. Discreet provides a memory wrapper = for msvc7. Perhaps you should be able to do something similar. I think = that they have a library built with msvc6, that exports memory = allocation and deallocation functions and replace the new and delete = operators with the functions provided by that library. Ignacio Casta=F1o cas...@ya... ------------------------------------------------------- This SF.Net email is sponsored by: INetU Attention Web Developers & Consultants: Become An INetU Hosting Partner. = Refer Dedicated Servers. We Manage Them. You Get 10% Monthly Commission! = INetU Dedicated Managed Hosting http://www.inetu.net/partner/index.php _______________________________________________ Gamedevlists-general mailing list = Gam...@li... https://lists.sourceforge.net/lists/listinfo/gamedevlists-general Archives: http://sourceforge.net/mailarchive/forum.php?forum_id=3D557 |
From: Stefan B. <ste...@te...> - 2003-06-22 16:19:53
|
> Is there any way within MSVC++ .NET to change settings so that > the dependency on 7.0 generation DLLs is eliminated? Yes. Use the /ML and /MLd, or /MT and /MTd code generation options = (for release and debug builds, respectively). You can change this in the IDE = by using the Project Properties (right-click on the solution explorer) -> = C/C++ -> Code Generation -> Runtime Library option. If you use the statically linked runtime, your app will only depend = on standard system DLL's. Alternatively, just ship your app with the runtime DLL's in the same folder as the exe. They are redistributable so there's no need to point users to some MS download location. Cheers, Stef! :) -- Stefan Boberg, R&D Manager - Team17 Software Ltd. bo...@te... |
From: Colin F. <cp...@ea...> - 2003-06-22 16:39:38
|
Okay, before I get all excited, I want to double-check. Is my only option to statically link? Or is there also the option of dynamically linking to the VC6 runtime libraries (thus VC6 DLLs)? As you say, shipping the DLLs isn't so bad... --- Colin ----- Original Message ----- From: "Stefan Boberg" <ste...@te...> To: <gam...@li...> Sent: Sunday, June 22, 2003 9:18 AM Subject: RE: [GD-General] Missing DLL: MSVCP70.DLL > Is there any way within MSVC++ .NET to change settings so that > the dependency on 7.0 generation DLLs is eliminated? Yes. Use the /ML and /MLd, or /MT and /MTd code generation options (for release and debug builds, respectively). You can change this in the IDE by using the Project Properties (right-click on the solution explorer) -> C/C++ -> Code Generation -> Runtime Library option. If you use the statically linked runtime, your app will only depend on standard system DLL's. Alternatively, just ship your app with the runtime DLL's in the same folder as the exe. They are redistributable so there's no need to point users to some MS download location. Cheers, Stef! :) -- Stefan Boberg, R&D Manager - Team17 Software Ltd. bo...@te... ------------------------------------------------------- This SF.Net email is sponsored by: INetU Attention Web Developers & Consultants: Become An INetU Hosting Partner. Refer Dedicated Servers. We Manage Them. You Get 10% Monthly Commission! INetU Dedicated Managed Hosting http://www.inetu.net/partner/index.php _______________________________________________ Gamedevlists-general mailing list Gam...@li... https://lists.sourceforge.net/lists/listinfo/gamedevlists-general Archives: http://sourceforge.net/mailarchive/forum.php?forum_idU7 |
From: Colin F. <cp...@ea...> - 2003-06-22 16:28:26
|
Okay, I downloaded discreet's "VC7 memory wrapper for 3ds max 5.1" and looked at it. So, if I wanted to eliminate dependency on MSVCR70.DLL and MSVCP70.DLL would I have to wrap all C runtime functions, compile with VC6 in to a DLL, and then only use my wrapped functions? That seems like a lot of work. Would it also be a speed hit (indirect function calls)? There isn't, say, a compiler switch, like: /vc6 ? :-) Can I trick things by messing with _MSC_VER ? Right now it's looking like shipping the two DLLs in the application directory is the best option, but if there is a way slightly more strightforward than the header file option, then perhaps it will be worthwhile. --- Colin |
From: <cas...@ya...> - 2003-06-22 23:12:29
|
Colin Fahey wrote: > Okay, I downloaded discreet's "VC7 memory wrapper for 3ds max 5.1" > and looked at it. > > So, if I wanted to eliminate dependency on MSVCR70.DLL and MSVCP70.DLL > would I have to wrap all C runtime functions, compile with VC6 in to a > DLL, and then only use my wrapped functions? > > That seems like a lot of work. Would it also be a speed hit > (indirect function calls)? No, you only have to wrap the functions that do memory allocations, like strdup. The discreet documentations says it's strcpy, but I belive that's a bug... But now that I think about it, that doesn't fix your problem, because you still have to provide msvcrt70.dll :-P > There isn't, say, a compiler switch, like: /vc6 ? :-) Note, that the only problem is just that vc7 is linking with a different runtime library. What you can do, is to put MSVCRT70.LIB in the ignored list, and add msvc6's MSVCRT.LIB to the library list. That's a bit dirty, but it 'might' work. I haven't tried that myself, though. Ignacio Castaño cas...@ya... |