Войти

Показать полную графическую версию : Какие установки в VS2005 для консольного приложения с исключением в связях mfc80u.dll


Viacheslav8
19-04-2009, 12:30
Здравствуйте, при компиляции и генерации в MS VC2005 окончательного консольного приложения win32 формируются связи на DLL, а именно на mfc80u.dll (конфигурация проекта release)

В коде программы использую следующие макроподстановки


#define _AFXDLL
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <float.h>
#include <afx.h>


AFXDLL нужен был только для того, чтобы воспользоваться функцией времени

CTime tfinish=CTime::GetCurrentTime();
CTimeSpan tdif=tfinish-tstart;
CString stdif = tdif.Format( "Total days: %D, hours: %H, mins: %M, secs: %S" );
printf("%s\n",(LPCTSTR)stdif);


Какие настройки в VС2005 для проекта следует использовать для удаления связей моего приложения с mfc80u.dll и т.п. dll-ками?

Admiral
21-04-2009, 14:34
Viacheslav8, если я правильно понял то решение очевидно:
если AFXDLL уже не нужен и с его помощью функцией времени пользоваться не требуется, то убрать её и макроподстановку, а в свойствах проекта в General -> Project Defaults -> Use of MFC указать Use Standard Windows Libraries (http://www.kapilik.com/files/MakeTempFilenameDLL2005/ProjectPropertiesGeneral.jpg)

Viacheslav8
05-05-2009, 17:25
Admiral, да действительно, как я раньше не заметил.

Правда еще нужно другой пунктик добавочно включить/переиначить для release проекта
C/C++ -> Code Generation -> Runtime Library указать Multi-threaded (/MT)

От <afx.h> пришлось отказаться, использую теперь <time.h>

// Получение текущего времени запуска
time_t tstart;
time(&tstart);

// Получение текущего времени окончания работы программы
time_t tfinish;
time(&tfinish);
double tdif=difftime(tfinish,tstart);
double days,hours,minutes,seconds;
seconds=modf(modf(modf(tdif/86400.0,&days)*24.0,&hours)*60.0,&minutes)*60.0;
printf("Program takes %fdays %fhours %fminutes %fseconds.\n",days,hours,minutes,seconds);




© OSzone.net 2001-2012