0

我在 中创建了一个Win 32 dynamic link library项目visual c++ 6.0,而我编写了以下代码,它在编译时显示了一些错误。

for(i = 0; i < (int) len; i++)
{
 strTmp.Format("%C", m_Track1Buffer[i]);
 strASCII += strTmp;
}

当我编译上面的代码时,它显示了以下错误:

error C2228: left of '.Format' must have class/struct/union type

我的代码中包含以下内容header files

#include <string.h>
#include <cstring>
#include <iostream>
#include "stdafx.h"
#include <stdio.h>
#include <String.h>
#include <mmsystem.h>
#include <winsock2.h> 
#include <windows.h>

除此之外,请告诉我为什么我无法CString在上述项目中使用。我也包括了alstr.h,但它对我没有帮助。

4

1 回答 1

4

它不起作用,因为您的项目中没有 MFC 支持。

您最好的解决方案是重新开始,将您的项目设为 MFC DLL 以开始并复制您的代码。

否则,您可以在 Project settings > Link > General > 中添加 MFC 支持Use MFC in a static/shared library

还需要:在 stdafx.h 中注释掉#include <windows.h>并添加

#include <afxwin.h>         // MFC core and standard components
#include <afxext.h>         // MFC extensions

然后,您面临的问题是您有两个DllMain()函数——一个在您的 dll 中,一个在 MFC 内部。注释掉 dll 中的那个(尽管您的要求可能不同。请参阅此处的进一步阅读:error LNK2005: _DllMain@12 already defined in MSVCRT.lib

如果您只是为了 CString 支持而这样做,那么不要这样做。而是只使用 std::string 。

于 2012-12-28T08:31:27.163 回答