Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Какие установки в VS2005 для консольного приложения с исключением в связях mfc80u.dll (http://forum.oszone.net/showthread.php?t=138116)

Viacheslav8 19-04-2009 12:30 1098090

Какие установки в VS2005 для консольного приложения с исключением в связях mfc80u.dll
 
Вложений: 1
Здравствуйте, при компиляции и генерации в 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 1099986

Viacheslav8, если я правильно понял то решение очевидно:
если AFXDLL уже не нужен и с его помощью функцией времени пользоваться не требуется, то убрать её и макроподстановку, а в свойствах проекта в General -> Project Defaults -> Use of MFC указать Use Standard Windows Libraries

Viacheslav8 05-05-2009 17:25 1111371

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);



Время: 12:36.

Время: 12:36.
© OSzone.net 2001-