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にして、コードをコピーすることから始めることです。

それができない場合は、[プロジェクト設定]>[リンク]>[一般]>で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

次に、2つの関数があるという問題に直面しますDllMain()。1つはdllにあり、もう1つはMFC内部にあります。dll内の1つをコメントアウトします(ただし、要件は異なる場合があります。詳細については、こちらを参照してください:エラーLNK2005:_DllMain @ 12はMSVCRT.libですでに定義されています

これをCStringサポートのためだけに行っている場合は、行わないでください。代わりにstd::stringを使用してください。

于 2012-12-28T08:31:27.163 に答える