Форум: Форум C++Разное
Новые темы: 00
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Помогите новичку с созданием окна

Сообщения:  [1-8] 

 
 автор: Фитч   (26.10.2007 в 16:13)   письмо автору
 
   для: Ziq   (24.10.2007 в 22:18)
 

>1. Почему нельзя работать с Win32 Console Application?

Этот тип проекта предназначен для консольных програм.м

>2. Откуда взялось MessageBoxA вот кусок из MSDN

Все функции, принимающие стороки имеют ANSI и Unicode-варианты. Соответственно добавляются A или W

  Ответить  
 
 автор: Ziq   (24.10.2007 в 22:18)   письмо автору
 
   для: Фитч   (24.10.2007 в 16:38)
 

Огромное спасибо! Действительно просто не так создал проект.

Возникло два вопроса:
1. Почему нельзя работать с Win32 Console Application?
2. Откуда взялось MessageBoxA вот кусок из MSDN

int MessageBox(          HWND hWnd,
    LPCTSTR lpText,
    LPCTSTR lpCaption,
    UINT uType
);

  Ответить  
 
 автор: Фитч   (24.10.2007 в 16:38)   письмо автору
 
   для: Ziq   (23.10.2007 в 21:55)
 

У меня тоже Visual Studio 2005. Как создаете проект?

  Ответить  
 
 автор: Ziq   (23.10.2007 в 21:55)   письмо автору
 
   для: Фитч   (23.10.2007 в 08:18)
 

вот что пишет

------ Build started: Project: ggg, Configuration: Debug Win32 ------
Compiling...
ggg.cpp
Linking...
MSVCRTD.lib(crtexe.obj) : error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup
C:\Documents and Settings\Администратор\Мои документы\Visual Studio 2005\Projects\ggg\Debug\ggg.exe : fatal error LNK1120: 1 unresolved externals
Build log was saved at "file://c:\Documents and Settings\Администратор\Мои документы\Visual Studio 2005\Projects\ggg\ggg\Debug\BuildLog.htm"
ggg - 2 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

если поставить Charset в значение Not Set

Код

#include <windows.h>

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    MessageBoxA(NULL, "Hello, World""Text", MB_OK);
    return 0;
}

Если поставить строку с #ifdef UNICODE... то выдает тоже ошибку. У тебя какая версия Visual Studio?

  Ответить  
 
 автор: Фитч   (23.10.2007 в 08:18)   письмо автору
 
   для: Ziq   (23.10.2007 в 00:46)
 

У меня компилится и работает нормально.
Что пишет в сообщении об ошибке?

  Ответить  
 
 автор: Ziq   (23.10.2007 в 00:46)   письмо автору
 
   для: Фитч   (22.10.2007 в 23:04)
 

Не помогло :(.

  Ответить  
 
 автор: Фитч   (22.10.2007 в 23:04)   письмо автору
 
   для: Ziq   (22.10.2007 в 22:14)
 

Вот так это должно выглядеть:

#include <windows.h>

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    MessageBoxA(NULL, "Hello, World""Text", MB_OK);
    return 0;
}

Ошибки:
1) WinMain должна быть объявлена с атрибутом __stdcall (в Windows-приложениях это WINAPI)
2) Проект создн для Unicode-версии. Выставьте в Project->Properties->General Character Set в значение Not Set (или добавьте перед #include <windows.h> что-то вроде

#ifdef UNICODE
#undef UNICODE
#endif

  Ответить  
 
 автор: Ziq   (22.10.2007 в 22:14)   письмо автору
 
 

Ничего не соображаю в Windows-приложениях. Вот такой код приведен в книге по win32 API

#include <windows.h>

int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    MessageBox(NULL, "Hello, World""Text", MB_OK);
    return 0;
}

Вот лог ошибки

------ Build started: Project: ggg, Configuration: Debug Win32 ------
Compiling...
ggg.cpp
c:\documents and settings\администратор\мои документы\visual studio 2005\projects\ggg\ggg\ggg.cpp(4) : warning C4007: 'WinMain' : must be '__stdcall'
c:\documents and settings\администратор\мои документы\visual studio 2005\projects\ggg\ggg\ggg.cpp(5) : error C2664: 'MessageBoxW' : cannot convert parameter 2 from 'const char [13]' to 'LPCWSTR'
        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
Build log was saved at "file://c:\Documents and Settings\Администратор\Мои документы\Visual Studio 2005\Projects\ggg\ggg\Debug\BuildLog.htm"
ggg - 1 error(s), 1 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========


Как сделать, чтобы все работало? В чем ошибка?

Все дело происходит в Microsoft Visual C++ 2005 Professional Edition

  Ответить  

Сообщения:  [1-8] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования