0

プログラムでドキュメントのクラス名を取得するにはどうすればよいですか。つまり、私はこれをしました:

pDocTemplate = new CMultiDocTemplate(
   IDR_FRAMETYPE,
   RUNTIME_CLASS(CFrameDoc2D),
   RUNTIME_CLASS(CEditorChildFrame),
   RUNTIME_CLASS(CFrameView));
gl_pDocTemplateManager->AddTemplateInfo("CMyDoc", eStructure);
AddDocTemplate(pDocTemplate);

クラスCMyDocを介して、MSVC ソリューションの別のプロジェクト (.dll) で文字列を取得したいと考えています。CDocument依存関係が循環しているため、特定のドキュメント クラスにキャストできません。

4

1 に答える 1

1

AddTemplateInfo()標準の MFC 関数ではないようです。

クラスの名前を取得するには、次のようなものを使用できます。

CRuntimeClass *pClass = pDoc->GetRuntimeClass();
if (pClass != NULL)
    TRACE(_T("Document class = %S\n"), pClass->m_lpszClassName);

注:m_lpszClassNameは ASCII ( LPCSTR) であり、上記のコードは、プロジェクトが Unicode に基づいていることを前提としています。それ以外の場合は、 に変更%Sして%sください。

于 2013-10-17T08:08:37.130 に答える