????? ??? ?? ????? ??? ??????? C (CRT) ???????

?????? ????????? ?????? ?????????
???? ???????: 140584 - ??? ???????? ???? ????? ????? ??? ???????.
????? ???? | ?? ????

?? ??? ??????

??????

???? ??? ????? ?? ?????? ?????? ?????? ????????? ":
  • ????? ???? ???? ????? (Debug/?????)
  • ????? ??? ?????? ????? ???? (Debug/?????)
  • ?????? ????? ???????? (DLL)(Debug/Release)
?????? ????? ?? ????? ????? ????? ???? ?????.

DLL multithread-????? ???? ?? ??? ????? ????? ???? ????? ???? ?? ????? CRT DLLs. ??? ??? ?????? ????? ?????? ?????? ????????? ?? ?? ?????? ?? ??????? ?????? ????? ??????, ??????? ??? ?? ???? ??? ????? multithread-?????.

?????? ?????? ??????? "?" ???? ????? ?????? ??????? ??????? /MLd "?" /MTd "?" /MDd ??? ???????? ?? ????????? Visual C++ 4.0 ?????????? ??????.

???? ?????? ?????? ??? ?? ??? ??????? ??? ??????? ???? ?????? ??????? ??????? ?????? ?? ?? ??? ????? ???????? ?????? ?????? ????????? (???? ???? ????? DLL multithread-?????). ??? ?? ?????? ?? ????? ?????? ????? ?????? ?????? ????????? ??? ???? ??????? ?????? ??????? ???????. ??? ??????? ???? ????? ?????? ??????? ??????? /ML(default) ?? MLd ? /MT MTd ? /MD ?? /MDd ? ??? ?????? ??????? ??? ??????? ?????????? (??? ??? ?????? ?????) ?? ??? ??????.
Reusable Library            Switch    Library    Macro(s) Defined
----------------------------------------------------------------
Single Threaded             /ML       LIBC       (none)
Static MultiThread          /MT       LIBCMT     _MT
Dynamic Link (DLL)          /MD       MSVCRT     _MT and _DLL
Debug Single Threaded       /MLd      LIBCD      _DEBUG
Debug Static MultiThread    /MTd      LIBCMTD    _DEBUG and _MT
Debug Dynamic Link (DLL)    /MDd      MSVCRTD    _DEBUG, _MT, and _DLL
				
????? ??? ???? ????? ???? ?????? ??? ??????? ???? ?? ???????? ????? ?? ??????? ???????? ??? ?????:
   dumpbin /all <object>.obj
				
??? ?? ????? ??????? ?????? RAW DATA # 1. ?? ?????? ???? ???? ???? ??? ?????? ?????????.

??????? ????

????? ?????? ?????? ????????? ????? ?????????? ?????? ?? ??? ??????? ??? ????? ????? CRT ???????? ??? ???? ??????? ?????? ??????? ???????. ????? ??????? ???????? (?? ?? ??? ?????) ??? ?? ?????? ??????? ??????? ??????? ???? ??????? ?? ??? (?????) ??? ??????? ????? ?????? ????????? ???? ??????? ??????? ??????. ???? ????? ???????? ???????? ?? ??? ??????? ????? ??????? ????? ??????? ???.

??? ???? ?????? ??? ??????? ??????? ?? ???? ?????? ??? ?????? ????? ?? CRT DLL ??? ????? ???? ?? ???? ?????? ????? ?????? ?????? ????????? DLL.

??? ????? ??? ?????? CRT ???? ?? ????? ???? ??????? ???????? ?? CRT ?? ????? ?????? ? ????? ??? ??? ?? ???? ?????? ??? ?????? ?????? ??? ???? CRT. ???? ?????? ?? ????? ?????? ????? CRTs ?????. ???? ??? ???:
  • ???? ????? heaps ??????. ?? ???? ????? (?? malloc ???? ???? ???? ?? ???? ???--?? ?????? ?? strdup ?? strstreambuf::str ???) ? ?? ??? ?????? ??? CRT-?? ??? ?? ??? ???????.
  • ?? ???? ????? ???? FILE * ?? ??? ??? ???? CRT ? ????? "stdio IO ?????? ???????" ?????.
  • ?? ???? ????? ????????? ??????? ?? ??? ??? ????? ??????? ?????? ?????? ?????.
???? ?? 4.0 Visual C++ ? linker ???? ?????? ????? (LNK4098) ??? ?????? ????? ?????? ??? ?? ???? ?? ???? ????? ?? ????? CRT. ????? ?? ?????????? ???? ??? ????????? ?? LNK4098.

????? ????????? ????????

???? ??????? ????????? ???????? ??????? ?? ??? ????? ????? ?????? ?????? ????????? ?????? ?? ??????? ??? ??????? ??????? ?????? ???????:
// MyReusableStaticSingleThreadReleaseLibrary.h
#if defined(_MT) || defined(_DEBUG)
    #error The /ML compiler switch is required.
#endif

// MyReusableStaticMultithreadReleaseLibrary.h
#if !defined(_MT) || defined(_DLL) || defined(_DEBUG)
    #error The /MT compiler switch is required.
#endif

// MyReusableDynamicLinkReleaseLibrary.h
#if !defined(_MT) || !defined(_DLL) || defined(_DEBUG)
    #error The /MD compiler switch is required.
#endif

// MyReusableStaticSingleThreadDebugLibrary.h
#if defined(_MT) || !defined(_DEBUG)
    #error The /MLd compiler switch is required.
#endif

// MyReusableStaticMultithreadDebugLibrary.h
#if !defined(_MT) || defined(_DLL) || !defined(_DEBUG)
    #error The /MTd compiler switch is required.
#endif

// MyReusableDynamicLinkDebugLibrary.h
#if !defined(_MT) || !defined(_DLL) || !defined(_DEBUG)
    #error The /MDd compiler switch is required.
#endif
				

???????

???? ???????: 140584 - ????? ??? ??????: 13/????? ??????/1425 - ??????: 3.1
????? ???
  • Microsoft Visual C++ 2.0 Professional Edition
  • Microsoft Visual C++ 2.1
  • Microsoft Visual C++ 2.2
  • Microsoft Visual C++ 4.0 Standard Edition
  • Microsoft Visual C++ 4.0 Standard Edition
  • Microsoft Visual C++ 4.1 Subscription
  • Microsoft Visual C++ 4.2 Professional Edition
  • Microsoft Visual C++ 4.2 Professional Edition
  • Microsoft Visual C++ 5.0 Standard Edition
  • Microsoft Visual C++ 6.0 Service Pack 5
  • Microsoft Visual C++ .NET 2002 Standard Edition
  • Microsoft Visual C++ .NET 2003 Standard Edition
????? ??????: 
kbmt kbcrt kbhowto KB140584 KbMtar
????? ????
???: ??? ????? ??? ?????? ???????? ?????? ????? ???? ????? ?????????? ????? ?? ????????? ?????? ????. ???? ???? ?????????? ???? ?? ???????? ???????? ?????? ????????? ????? ????????? ???????? ????? ???????? ?????? ?? ?????? ??? ?? ???????? ???????? ?? ????? ??????? ?????? ??? ??????? ?????? ??. ?????? ?? ???? ??? ??????? ???????? ????? ?? ???? ????? ?????? ??? ????? ??? ????? ??????? ?? ????? ?? ?????? ??? ??? ??????? ??????? ?? ????? ????? ????? ????? ?????. ?? ????? ???? ?????????? ??????? ??? ????? ?? ??????? ?? ????? ?????? ?? ??? ????? ?? ????? ??????? ?? ???????? ?? ??? ???????. ???? ???? ?????????? ???????? ??? ????? ?????? ??????? ??????
???? ??? ????? ??????? ?????? ??????????140584

????? ???????

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com