Тема: allocates memory from both MSVCR80.DLL and MSVCR80D.DLL?

Что я неправилно определил в настройках проекта? Получаю вот такое сообщение - allocates memory from both MSVCR80.DLL and MSVCR80D.DLL

Re: allocates memory from both MSVCR80.DLL and MSVCR80D.DLL?

> guglik
Скомпилируй в Release.

Re: allocates memory from both MSVCR80.DLL and MSVCR80D.DLL?

У меня такая же проблема. В Release все нормально. Но при перетягивании проектов в VS2005 начались проблемы со строковыми функциями (наверно). А запустить под отладчиком не получается. Че делать, люди?
Precompiled header /MD.
При замене на /MDd вроде компиллируется но в акад не грузится. Выдает то же сообщение что и у guglik

Re: allocates memory from both MSVCR80.DLL and MSVCR80D.DLL?

О, разобрался. Если в кратце, то stdafx.h для arx 7|8 отличается от arx 4|5|6.

Оставил Precompiled header /MD.
И подменил stdafx.h и все сразу скомпилилось

Re: allocates memory from both MSVCR80.DLL and MSVCR80D.DLL?

> Николай
Попробуй создать новый проект при помощи ObjectARX Wizard, убрать precompiled headers совсем(!), а затем уже перетащить туда свои .cpp, .h-фалы. Кроме того необходимо в stdafx.h что-то такое:

//-----------------------------------------------------------------------------
//----- 'DEBUG workaround' below prevents the MFC or ATL #include-s from pulling
//----- in "Afx.h" that would force the debug CRT through #pragma-s.
#if defined(_DEBUG) && !defined(_FULLDEBUG_)
#define _DEBUG_WAS_DEFINED
#undef _DEBUG
#pragma message ("     Compiling MFC / STL / ATL header files in release mode.")
#endif
//----- ObjectARX and OMF headers needs this
#include <map>
//-----------------------------------------------------------------------------
#include <afxwin.h>       //----- MFC core and standard components
#include <afxext.h>       //----- MFC extensions
#ifndef _AFX_NO_OLE_SUPPORT
#include <afxole.h>       //----- MFC OLE classes
#include <afxodlgs.h>     //----- MFC OLE dialog classes
#include <afxdisp.h>      //----- MFC Automation classes
#endif //----- _AFX_NO_OLE_SUPPORT
#ifndef _AFX_NO_DB_SUPPORT
#include <afxdb.h>        //----- MFC ODBC database classes
#endif //----- _AFX_NO_DB_SUPPORT
#ifndef _AFX_NO_DAO_SUPPORT
#include <afxdao.h>       //----- MFC DAO database classes
#endif //----- _AFX_NO_DAO_SUPPORT
#include <afxdtctl.h>     //----- MFC support for Internet Explorer 4 Common Controls
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h>       //----- MFC support for Windows Common Controls
#endif //----- _AFX_NO_AFXCMN_SUPPORT
//-----------------------------------------------------------------------------
#include <AtlBase.h>
#include <AtlCom.h>
using namespace ATL ;
//-----------------------------------------------------------------------------
#ifdef _DEBUG_WAS_DEFINED
#define _DEBUG
#undef _DEBUG_WAS_DEFINED
#endif

Re: allocates memory from both MSVCR80.DLL and MSVCR80D.DLL?

> Александр Ривилис
Спасибо за помощь. отделался малй кровью :) только stdafx.h

Re: allocates memory from both MSVCR80.DLL and MSVCR80D.DLL?

И еще не забыть, что в каждом cpp-файле проекта до любых других #include'ов необходимо вставить:

#include "stdafx.h"

Иначе смесь MSVCR80.DLL и MSVCR80D.DLL библиотек будет обеспечена!

Re: allocates memory from both MSVCR80.DLL and MSVCR80D.DLL?

> Александр Ривилис
А разве бывает иначе? :):):)
:) Это называется хороший стиль программирования. "StdAfx.h" даже при автоматическом создании класса, например диалога, всегда вставляется автоматом первым.

Re: allocates memory from both MSVCR80.DLL and MSVCR80D.DLL?

> Николай
К сожалению бывает. Мне вчера вечером пришло письмо с целым проектом VS 2005 и заголовком из этой темы без комментариев. Методом ненаучного втыка я понял что от меня хотят. :) Так вот в половинее cpp-файлов не было #include "stdafx.h" - они создавались вручную и видимо еще в достаточно старых версиях ObjectARX.