2012-05-22 4 views
0

У меня есть код для создания файла журнала: -Ошибки в проекте win32 консоли

// INI.cpp: implementation of the CINI class. 


//#include "stdafx.h" 

#include "INI.h" 
#include <iostream> 

#ifdef _DEBUG 
#undef THIS_FILE 
static char THIS_FILE[]=__FILE__; 
#define new DEBUG_NEW 
#endif 


CINI::CINI(char* szFileName) 
{ 

    memset(m_szFileName, 0x00, 255); 
    memcpy(m_szFileName, szFileName, strlen(szFileName)); 

} 

CINI::~CINI() 
{ 

} 


float CINI::ReadFloat(char* szSection, char* szKey, float fltDefaultValue) 
{ 
    char szResult[255]; 
    char szDefault[255]; 
    float fltResult; sprintf(szDefault, "%f",fltDefaultValue); 
    GetPrivateProfileString(szSection, szKey, szDefault, szResult, 255, m_szFileName); 
    fltResult = atof(szResult); return fltResult; 
} 

bool CINI::ReadBoolean(char* szSection, char* szKey, bool bolDefaultValue) 
{ 
    char szResult[255]; 
    char szDefault[255]; 
    bool bolResult; 
    sprintf(szDefault, "%s", bolDefaultValue? "True" : "False"); 
    GetPrivateProfileString(szSection, szKey, szDefault, szResult, 255, m_szFileName); 
    bolResult = (strcmp(szResult, "True") == 0 || strcmp(szResult, "true") == 0) ? true : false; return bolResult; 
} 

char* CINI::ReadString(char* szSection, char* szKey, const char* szDefaultValue) 
{ 
    memset(m_szResult, 0x00, 255); 
    GetPrivateProfileString(szSection, szKey, szDefaultValue, m_szResult, 255, m_szFileName); 
    return m_szResult; 
} 

void CINI::WriteInteger(char* szSection, char* szKey, int iValue) 
{ 
    char szValue[255]; sprintf(szValue, "%d", iValue); 
    WritePrivateProfileString(szSection, szKey, szValue, m_szFileName); 
} 

void CINI::WriteFloat(char* szSection, char* szKey, float fltValue) 
{ 
    char szValue[255]; 
    sprintf(szValue, "%f", fltValue); 
    WritePrivateProfileString(szSection, szKey, szValue, m_szFileName); 
} 

void CINI::WriteBoolean(char* szSection, char* szKey, bool bolValue) 
{ 
    char szValue[255]; sprintf(szValue, "%s", bolValue ? "True" : "False"); 
    WritePrivateProfileString(szSection, szKey, szValue, m_szFileName); 
} 

void CINI::WriteString(char* szSection, char* szKey, char* szValue) 
{ 
    WritePrivateProfileString(szSection, szKey, szValue, m_szFileName); 
} 

Я получаю следующие ошибки при выполнении кода: -

c:\program files\microsoft visual studio 10.0\vc\atlmfc\include\afx.h(24): fatal error C1189: #error : Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d] 

Когда я включаю stdafx.h и stdafx.cpp я получаю следующие ошибки: -

StdAfx.cpp 
1>c:\program files\microsoft visual studio 10.0\vc\atlmfc\include\afx.h(24): fatal error C1189: #error : Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d] 
1> INI.cpp 
1>c:\program files\microsoft visual studio 10.0\vc\atlmfc\include\afx.h(24): fatal error C1189: #error : Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d] 

Я использую VS2010 и вам нужно построить проект консоли win32. Пожалуйста помоги.

ответ

1

Вы должны изменить свойства вашего проекта:

Перейти к Проект-> Свойства (последний пункт меню) -> Свойства конфигурации -> Общие.

Там вы увидите раздел «По умолчанию проекта» с опцией «Использование MFC». Выберите «Использовать MFC в статической библиотеке».

В принципе, вы получаете конфликт, потому что в настройках генерации кода выбрана многопоточная статическая библиотека времени выполнения, и библиотека MFC, которую вы пытаетесь использовать, построена с использованием запуска на основе dll -время.

+0

Сэр вышеупомянутое решение u упоминается в этом случае, включая StdAfx.h и StdAfx.cpp в проекте или нет, если случай не включает StdAfx.h и StdAfx.cpp и выбор Runtime Libraray при генерации кода как/MT Я получаю следующие ошибки: LIBCMT.lib (invarg.obj): ошибка LNK2005: __initp_misc_invarg, уже определенная в libcmtd.lib (invarg.obj) 1> LIBCMT.lib (invarg.obj): ошибка LNK2005: __call_reportfault, уже определенная в libcmtd.lib (invarg.obj) – user1402643

Смежные вопросы