Я потратил большую часть своего времени, пытаясь понять, почему эта ошибка происходит, но она продолжает меня озадачивать.
Я создал консольное приложение в Visual C++ и создал одно приложение MFC. Теперь я хочу добавить их в один проект таким образом, что при компиляции проекта он должен открыть консоль, а затем открыть диалоговое окно в зависимости от моих команд......
Я добавил файлы заголовков afx, задал параметры конфигурации.
Я хочу знать, с чего начать, если начальная точка будет в winmain() или int main()? Есть ли примеры? Дайте мне некоторые ссылки, чтобы знать. решение Спасибо заранее.
Создайте диалоговое приложение MFC. Project - Properties - Configuration Properies- Linker - Advanced - точка входа, установите wWinMainCRTStartup (если этот проект является Unicode). Linker - System - выберите Консоль. Создайте приложение. Теперь он открывает окно консоли и диалоговое окно.
Добавьте некоторую логику. Например, в моем файле cpp файла приложения я добавил следующее:
#include "stdafx.h"
#include "testmfc.h"
#include "testmfcDlg.h"
#include <iostream> // add
#include <string> // add
using namespace std; // add
...
BOOL CtestmfcApp::InitInstance()
{
...
SetRegistryKey(_T("Local AppWizard-Generated Applications"));
// ****** add this
string s;
cout << "Start application?" << endl;
cin >> s;
if ( s == "y" )
{
CtestmfcDlg dlg;
m_pMainWnd = &dlg;
dlg.DoModal();
}
// ******
// Delete the shell manager created above.
if (pShellManager != NULL)
{
delete pShellManager;
}
return FALSE;
}
Теперь запустите приложение. Если вы ответите "y" в окне консоли, отобразится диалоговое окно. В противном случае приложение немедленно выйдет. Внедрите свою собственную логику на основе этого образца.