2 / 2 / 1
Регистрация: 02.11.2010
Сообщений: 78

CMainWnd на VS2010

25.02.2011, 17:29. Показов 2115. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
CMainWnd::CMainWnd()
{
    Create(NULL,"Step1",WS_OVERLAPPEDWINDOW,rectDefault,
        NULL,NULL); // Создать окно программы
}
Выдаёт ошибку

>c:\users\alexander lyapunov\documents\visual studio 2010\projects\mfcdll\mfcdll\mfcdll.cpp(5 3): error C2664: 'CFrameWnd::Create' : cannot convert parameter 2 from 'long' to 'LPCTSTR'
1> Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast

остальные аргументы, кроме первого, ему тоже не нравятся. Даже если C-style - почему бы и не пропустить?
Как исправить? Полный код

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
// MFCDLL.cpp : Defines the initialization routines for the DLL.
//
 
#include "stdafx.h"
#include "MFCDLL.h"
 
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
 
//
//TODO: If this DLL is dynamically linked against the MFC DLLs,
//      any functions exported from this DLL which call into
//      MFC must have the AFX_MANAGE_STATE macro added at the
//      very beginning of the function.
//
//      For example:
//
//      extern "C" BOOL PASCAL EXPORT ExportedFunction()
//      {
//          AFX_MANAGE_STATE(AfxGetStaticModuleState());
//          // normal function body here
//      }
//
//      It is very important that this macro appear in each
//      function, prior to any calls into MFC.  This means that
//      it must appear as the first statement within the 
//      function, even before any object variable declarations
//      as their constructors may generate calls into the MFC
//      DLL.
//
//      Please see MFC Technical Notes 33 and 58 for additional
//      details.
//
 
// CMFCDLLApp
 
BEGIN_MESSAGE_MAP(CMFCDLLApp, CWinApp)
END_MESSAGE_MAP()
 
 
// CMFCDLLApp construction
 
class CMainWnd : public CFrameWnd
{
public:
    CMainWnd(); // Конструктор по умолчанию
};
 
CMainWnd::CMainWnd()
{
    Create(NULL,"Step1",WS_OVERLAPPEDWINDOW,rectDefault,
        NULL,NULL); // Создать окно программы
}
 
class CMyApp : public CWinApp
{
public:
    CMyApp();           //конструктор по умолчанию
    virtual BOOL InitInstance();//стандартная инициализация
};
 
CMyApp::CMyApp() // конструктор главного класса приложения
{}
 
 
// CMFCDLLApp initialization
 
BOOL CMFCDLLApp::InitInstance()
{
    CWinApp::InitInstance();
    m_pMainWnd=new CMainWnd();  // создать класс окна
    ASSERT(m_pMainWnd); // проверить его правильность
    m_pMainWnd->ShowWindow(SW_SHOW);// Показать окно
    m_pMainWnd->UpdateWindow(); // Обновить окно
    return TRUE;
 
    return TRUE;
}
Добавлено через 16 минут
L там добавил, ладно. Следующая ошибка:

1>MFCDLL.obj : error LNK2001: unresolved external symbol "public: virtual int __thiscall CMyApp::InitInstance(void)" (?InitInstance@CMyApp@@UAEHXZ)
1>c:\users\alexander lyapunov\documents\visual studio 2010\Projects\MFCDLL\Debug\MFCDLL.dll : fatal error LNK1120: 1 unresolved externals
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.02.2011, 17:29
Ответы с готовыми решениями:

C# VS2010 мот кто скинит книгу или ссылку даст на скачку?? (vs2010 rus)
C# VS2010 мот кто скинит книгу или ссылку даст на скачку?? (vs2010 rus)

CUDA 4.0 и VS2010
хочу написать программу на CUDA под VS2010, но сталкиваюсь с проблемой когда создаю заголовочный файл или с исходником вылезает окно...

Графика в VS2010
Здравствуйте. Возможно ли в Консольном приложении Visual Studio 2010 использовать графику, как например в паскале? Если возможно, то...

4
Модератор
Эксперт по электронике
8966 / 6732 / 921
Регистрация: 14.02.2011
Сообщений: 23,787
27.02.2011, 00:21
C++
1
2
3
4
5
CMainWnd::CMainWnd()
{
        Create(NULL,"Step1",WS_OVERLAPPEDWINDOW,rectDefault,
                NULL,NULL);     // Создать окно программы
}
я не понял что ты создаешь???
если ты хочешь создать окно то
может так
C++
1
2
CWnd wnd;
wnd.Create
пример MSDN
void CMyDlg::OnCreateStatic()
{
// m_pWndStatic is a CWnd* member of CMyDlg
m_pWndStatic = new CWnd;
m_pWndStatic->Create(_T("STATIC"), _T("Hi"), WS_CHILD | WS_VISIBLE,
CRect(0, 0, 20, 20), this, 1234);
}
если ты создаешь окно производное от CWnd кнопки списки и т.д то вызывай этот класс
у каждого класса свой Create
если ты на на API
то CreateWindow(


если ты создаешь от CFrameWnd
то вот описание ее
virtual BOOL Create(
LPCTSTR lpszClassName,
LPCTSTR lpszWindowName,
DWORD dwStyle = WS_OVERLAPPEDWINDOW,
const RECT& rect = rectDefault,
CWnd* pParentWnd = NULL,
LPCTSTR lpszMenuName = NULL,
DWORD dwExStyle = 0,
CCreateContext* pContext = NULL
);
у тебя конкретно выскочила ошибка что он не может перевести имя в UNICODE
или убери в настройках проэкта использовать UNICODE или переводи сам L
на 2008 2010 лучше все строки описывать _T("AAAAA")
макрос _T сам переведет строку в нужную кодировку в зависимости от настроек
по второму вопросу
class CMyApp : public CWinApp
{
public:
CMyApp(); //конструктор по умолчанию
virtual BOOL InitInstance();//стандартная инициализация
........................................ .............
BOOL CMFCDLLApp::InitInstance()
{

это ниче что классы разные???
линкер и не находит у тебя функции InitInstance() класса CMyApp
которая объявлена но не определена
С уважением Валерий
1
2 / 2 / 1
Регистрация: 02.11.2010
Сообщений: 78
28.02.2011, 10:54  [ТС]
Валерий, спасибо что откликнулись. Создаю пустое окно.

Пробовал запустить его в VS2008 Express - но не работал, судя по всему из за того что она не поддерживает MFC библиотеки. Установил VS 2010 Premium. Там есть отдельные проекты MFC. Из предложенных 3х вариантов ( MFC приложение - exe, MFC - библиотека - dll и ещё что-то) выбрал библиотеку dll, хотя сейчас думаю, что если создаю окно, то надо было приложение exe выбирать.
Выскочило много ошибок которых я раньше не видел ( помимо самого кода, в котором тоже надо разобраться сначала ), поэтому разбираюсь с ними сижу.

По второму вопросу - спасибо снова, сейчас буду исправлять. Заодно создам проект как MFC приложение сразу.

Добавлено через 51 минуту
Сделал все исправления в моём проекте(dll), ошибок не выдаёт. Но, когда запускает, вылазит ошибка

---------------------------
Microsoft Visual Studio
---------------------------
Unable to start program 'C:\Users\Alexander Lyapunov\Documents\Visual Studio 2010\Projects\MFCDLL\Debug\MFCDLL.dll'.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
// MFCDLL.cpp : Defines the initialization routines for the DLL.
//
 
#include "stdafx.h"
#include "MFCDLL.h"
 
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
 
//
//TODO: If this DLL is dynamically linked against the MFC DLLs,
//      any functions exported from this DLL which call into
//      MFC must have the AFX_MANAGE_STATE macro added at the
//      very beginning of the function.
//
//      For example:
//
//      extern "C" BOOL PASCAL EXPORT ExportedFunction()
//      {
//          AFX_MANAGE_STATE(AfxGetStaticModuleState());
//          // normal function body here
//      }
//
//      It is very important that this macro appear in each
//      function, prior to any calls into MFC.  This means that
//      it must appear as the first statement within the 
//      function, even before any object variable declarations
//      as their constructors may generate calls into the MFC
//      DLL.
//
//      Please see MFC Technical Notes 33 and 58 for additional
//      details.
//
 
// CMFCDLLApp
 
BEGIN_MESSAGE_MAP(CMFCDLLApp, CWinApp)
END_MESSAGE_MAP()
 
 
// CMFCDLLApp construction
 
class CMainWnd : public CFrameWnd
{
public:
    CMainWnd(); // Конструктор по умолчанию
};
 
CMainWnd::CMainWnd()
{
    Create(NULL,_T("Step1"),WS_OVERLAPPEDWINDOW,rectDefault,
        NULL,NULL); // Создать окно программы
}
 
class CMyApp : public CWinApp
{
public:
    CMyApp();           //конструктор по умолчанию
    virtual BOOL InitInstance();//стандартная инициализация
};
 
CMyApp::CMyApp() // конструктор главного класса приложения
{}
 
 
// CMFCDLLApp initialization
 
BOOL CMyApp::InitInstance()
{
    CWinApp::InitInstance();
    m_pMainWnd=new CMainWnd();  // создать класс окна
    ASSERT(m_pMainWnd); // проверить его правильность
    m_pMainWnd->ShowWindow(SW_SHOW);// Показать окно
    m_pMainWnd->UpdateWindow(); // Обновить окно
    return TRUE;
 
    return TRUE;
}
Проблема явно с настройками.
0
2 / 2 / 1
Регистрация: 05.05.2012
Сообщений: 159
20.10.2014, 13:24
Поменяй библиотеку, в настройках проекта. И вот это поменяй!)
C++
1
2
3
4
5
CMainWnd::CMainWnd()
{
    Create(NULL, L"Step1", WS_OVERLAPPEDWINDOW, rectDefault,
        NULL, NULL);    // Создать окно программы
}
0
Модератор
Эксперт по электронике
8966 / 6732 / 921
Регистрация: 14.02.2011
Сообщений: 23,787
20.10.2014, 13:47
Цитата Сообщение от zZzTipo4ekzZz Посмотреть сообщение
Поменяй библиотеку,
это ему очень пригодится, через три с половиной года
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.10.2014, 13:47
Помогаю со студенческими работами здесь

sockets vs2010
Доброго времени суток. Решил написать небольшой месседжер на с++. Возник вопрос, а есть ли уже написанные асинхронные сокеты или надо...

Окна в VS2010 ?
Помагите случайно закрыл окна старотовые и как их вернуть ? скрин дам !

Интерфейс в VS2010
:facepalm:При программировании хочу видеть описание типов, помниться мне что была какая та такая форма интересная например выбераешь мышкой...

Асинхронность в VS2010
Возможно ли использование асинхронности в VS2010, async & wait В одной статье написано что установка этого SDK несовместима с VS2010...

Компиляция на VS2010
Во вложенном архиве в папке src лежат исходники open source проекта. По каким-то причинам, в том числе показанным на скриншотах, не могу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

Новые блоги и статьи
Тестирование энергоэффективности и скорости вычислений видеокарт в BOINC проектах
Programma_Boinc 08.07.2025
Тестирование энергоэффективности и скорости вычислений видеокарт в BOINC проектах Опубликовано: 07. 07. 2025 Рубрика: Uncategorized Автор: AlexA Статья размещается на сайте с разрешения. . .
Раскрываем внутренние механики Android с помощью контекста и манифеста
mobDevWorks 07.07.2025
Каждый Android-разработчик сталкивается с Context и манифестом буквально в первый день работы. Но много ли мы задумываемся о том, что скрывается за этими обыденными элементами? Я, честно говоря,. . .
API на базе FastAPI с Python за пару минут
AI_Generated 07.07.2025
FastAPI - это относительно молодой фреймворк для создания веб-API, который за короткое время заработал бешеную популярность в Python-сообществе. И не зря. Я помню, как впервые запустил приложение на. . .
Основы WebGL. Раскрашивание вершин с помощью VBO
8Observer8 05.07.2025
На русском https:/ / vkvideo. ru/ video-231374465_456239020 На английском https:/ / www. youtube. com/ watch?v=oskqtCrWns0 Исходники примера:
Мониторинг микросервисов с OpenTelemetry в Kubernetes
Mr. Docker 04.07.2025
Проблема наблюдаемости (observability) в Kubernetes - это не просто вопрос сбора логов или метрик. Это целый комплекс вызовов, которые возникают из-за самой природы контейнеризации и оркестрации. К. . .
Проблемы с Kotlin и Wasm при создании игры
GameUnited 03.07.2025
В современном мире разработки игр выбор технологии - это зачастую балансирование между удобством разработки, переносимостью и производительностью. Когда я решил создать свою первую веб-игру, мой. . .
Создаем микросервисы с Go и Kubernetes
golander 02.07.2025
Когда я только начинал с микросервисами, все спорили о том, какой язык юзать. Сейчас Go (или Golang) фактически захватил эту нишу. И вот почему этот язык настолько заходит для этих задач: . . .
C++23, квантовые вычисления и взаимодействие с Q#
bytestream 02.07.2025
Я всегда с некоторым скептицизмом относился к громким заявлениям о революциях в IT, но квантовые вычисления - это тот случай, когда революция действительно происходит прямо у нас на глазах. Последние. . .
Вот в чем сила LM.
Hrethgir 02.07.2025
как на английском будет “обслуживание“ Слово «обслуживание» на английском языке может переводиться несколькими способами в зависимости от контекста: * **Service** — самый распространённый. . .
Использование Keycloak со Spring Boot и интеграция Identity Provider
Javaican 01.07.2025
Два года назад я получил задачу, которая сначала показалась тривиальной: интегрировать корпоративную аутентификацию в микросервисную архитектуру. На тот момент у нас было семь Spring Boot приложений,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru