none
CString类型的使用范围 RRS feed

  • 问题

  • MFC中对于字符串的处理,大量使用了CString类型的数据。

    对于CString类型的数据,利用VS2008,建立了一个Win32的平台程序和Win32的应用程序。

    包含了头文件afx.h、string等头文件,使用了命名空间之后,发现有编译错误如下:

    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]

    通过网络查找,有一些人说CString专属MFC使用,但是在一些例子中发现了很多C程序中使用了CString。

    在MSDN上也查找了大量的关于CString在C中使用或者互换的说明。

    基于以上,我糊涂了。

    CString类型,除了在MFC中被使用外,还可以在什么类型的工程中被使用?该怎么使用?在VS2008中需要设置什么东西?

    谢谢。

    2010年7月21日 9:27

答案

  • Ingnore import library。然后自行添加所需的MFC lib。由于Runtime和MFC重定义导致错误。另外还需要调整头文件顺序。


    麻烦把正确答案设为解答。
    2010年7月27日 3:46
    版主

全部回复

  • 你只要在工程属性的C/C++中的Code Generation->Runtime Library->Multi-threaded DLL (/MD)这个改选成Multi-threaded (/MT)即可
    0xBAADF00D
    2010年7月21日 16:21
    版主
  • 以上的修改仅适用于Win32平台程序的空工程,而对于win32的应用程序(非空),就算更改了,会出现很多重复编译的错误。

    2010年7月26日 6:44
  • Ingnore import library。然后自行添加所需的MFC lib。由于Runtime和MFC重定义导致错误。另外还需要调整头文件顺序。


    麻烦把正确答案设为解答。
    2010年7月27日 3:46
    版主