0

AFX_IDP_PARSE_INTは標準のMFCエラーメッセージ(afxres.hで定義されています)のIDですが、私のプロジェクトではロードに失敗します。つまり、LoadStringreturns FALSEGetLastErrorreturns ERROR_RESOURCE_NAME_NOT_FOUND、CStringは空のままです。

これは、InitInstanseの最初にロードしようとしても発生します。

BOOL CMyLegacyProject::InitInstance()
{
    CString string;
    if (!string.LoadString(AFX_IDP_PARSE_INT))
            AfxMessageBox(_T("Failed."));
}

この同じコードは新しいプロジェクトで機能しますが、MFCの同じリンク(静的にリンクします)、同じWINVER、古いプロジェクトと同じように作成しようとしましたが、新しいプロジェクトでエラーを再現できませんプロジェクトを開始しました。

4

1 に答える 1

0

リソースが正しく構築されていないようです。.rcファイルにすべてのAFXリソースも含まれていることを確認してください。まず、新しいプロジェクトを最初から作成し、その中に文字列をロードしてテストしてから、デフォルトの.rcファイルがどのように表示されるかを確認します。

'afxres.rc'というファイルが含まれている必要があります。つまり、RCには次のようなファイルが含まれている必要があります。

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE 9, 1
#pragma code_page(1252)
#endif //_WIN32
#include "res\MyRes.rc2"  // non-Microsoft Visual C++ edited resources
#include "afxres.rc"         // Standard components
#include "afxprint.rc"       // printing/print preview resources
#endif
于 2012-08-08T13:05:59.460 に答える