gpt4 book ai didi

c++ - 创建对话框时没有类或命名空间

转载 作者:太空宇宙 更新时间:2023-11-04 12:07:16 25 4
gpt4 key购买 nike

我在 ATL dll 文件中创建了一个对话框,并添加了一个类来控制其性能。我最初设法让它编译,但现在(可能因为调整包括)我在编译时收到奇怪的消息:

CTestDlg:没有类或命名空间

下面我引用了header的源码和cpp文件:

#pragma once

#include "resource.h" // Hauptsymbole
#include <atlhost.h>


class CTestDlg : public CAxDialogImpl<CTestDlg>
{
private:
bool m_cancel;


public:
CTestDlg()
{
m_cancel = true;
}

~CTestDlg()
{
}

enum { IDD = IDD_TESTDLG };

BEGIN_MSG_MAP(CTestDlg)
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
COMMAND_HANDLER(IDOK, BN_CLICKED, OnClickedOK)
COMMAND_HANDLER(IDCANCEL, BN_CLICKED, OnClickedCancel)
COMMAND_HANDLER(IDC_EDIT1, EN_CHANGE, OnEnChangeEdit1)
CHAIN_MSG_MAP(CAxDialogImpl<CTestDlg>)
END_MSG_MAP()



LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
CAxDialogImpl<CTestDlg>::OnInitDialog(uMsg, wParam, lParam, bHandled);
bHandled = TRUE;

//CEdit* pEdit = (CEdit*)GetDlgItem(IDC_EDIT1);
//pEdit->SetWindowTextW(L"Hello");
CWindow textBox(GetDlgItem(IDC_EDIT1));
textBox.SetWindowTextW(L"hello");
//textBox.SendMessageW(WM_SETTEXT, 0, (LPARAM)L"test!!!");
return 1; // Das System kann den Fokus festlegen
}

LRESULT OnClickedOK(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled)
{
EndDialog(wID);
m_cancel = false;
return 0;
}

LRESULT OnClickedCancel(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled)
{
EndDialog(wID);
return 0;
}

LRESULT OnEnChangeEdit1(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);

bool IsCancelled() const { return m_cancel; }
bool saveFile();

};

//.cpp文件

#include "CTestDlg.h"
#include "stdafx.h"




LRESULT CTestDlg::OnEnChangeEdit1(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
{
return 0;
}

bool CTestDlg::saveFile()
{

OPENFILENAME ofn;
WCHAR szFileName[MAX_PATH] = L"";


ZeroMemory( &ofn , sizeof( ofn));

ofn.lStructSize = sizeof(ofn);
ofn.hwndOwner = NULL;
ofn.lpstrFilter = (LPCWSTR)L"Text Files (*.txt)\0*.txt\0All Files (*.*)\0*.*\0";
ofn.lpstrFile = (LPWSTR)szFileName;
ofn.nMaxFile = MAX_PATH;
ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
ofn.lpstrDefExt = (LPCWSTR)L"txt";

if(GetSaveFileNameW(&ofn))
{
HANDLE hFile = CreateFile(ofn.lpstrFile,
GENERIC_WRITE,
0,
NULL,
CREATE_NEW,
FILE_ATTRIBUTE_NORMAL,
NULL);

DWORD dwBytesWritten = 0;
char str[] = "Example text testing WriteFile";
WriteFile( hFile, str, strlen(str), &dwBytesWritten, NULL );
CloseHandle(hFile);

return true;
}
else
return false;

}

关于代码似乎有什么问题的任何指示?

最佳答案

您的预编译头包含应该在.cpp 文件中的第一个,更改:

#include "CTestDlg.h"
#include "stdafx.h"

#include "stdafx.h"
#include "CTestDlg.h"

还要仔细检查包含的文件名是否正确

关于c++ - 创建对话框时没有类或命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11518337/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com