powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Не понял решил посмотреть на Visual Studio 2005
24 сообщений из 24, страница 1 из 1
Не понял решил посмотреть на Visual Studio 2005
    #34412566
Begem0t!k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как обратиться из Visual Studio 2005 C++ !
-к функциям Win32 API.

Например я пишу MessageBox(); - и вообщем не находит этой функции

Где то видел запись ::MessageBox() тоже не работает !

Я чайник как это сделать ?
...
Рейтинг: 0 / 0
Не понял решил посмотреть на Visual Studio 2005
    #34413198
Begem0t!k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну где же помошники то )
...
Рейтинг: 0 / 0
Не понял решил посмотреть на Visual Studio 2005
    #34413251
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Begem0t!kГде то видел запись ::MessageBox() тоже не работает !
Как не работает? Что за ошибка?
...
Рейтинг: 0 / 0
Не понял решил посмотреть на Visual Studio 2005
    #34413313
Begem0t!k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton Begem0t!kГде то видел запись ::MessageBox() тоже не работает !
Как не работает? Что за ошибка?

winforms\winforms\Form1.h(87) : error C2039: 'MessageBox' : is not a member of '`global namespace''
d:\visualstudioproj\winforms\winforms\Form1.h(87) : error C2065: 'NULL' : undeclared identifier
d:\visualstudioproj\winforms\winforms\Form1.h(87) : error C2065: 'MB_OK' : undeclared identifier
...
Рейтинг: 0 / 0
Не понял решил посмотреть на Visual Studio 2005
    #34413321
Begem0t!k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это я создал приложение Windows Forms Application
...
Рейтинг: 0 / 0
Не понял решил посмотреть на Visual Studio 2005
    #34413337
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Begem0t!k mayton Begem0t!kГде то видел запись ::MessageBox() тоже не работает !
Как не работает? Что за ошибка?

winforms\winforms\Form1.h(87) : error C2039: 'MessageBox' : is not a member of '`global namespace''
d:\visualstudioproj\winforms\winforms\Form1.h(87) : error C2065: 'NULL' : undeclared identifier
d:\visualstudioproj\winforms\winforms\Form1.h(87) : error C2065: 'MB_OK' : undeclared identifier

Подключите winuser.h или windows.h
...
Рейтинг: 0 / 0
Не понял решил посмотреть на Visual Studio 2005
    #34413512
Begem0t!k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
error C2872: 'MessageBox' : ambiguous symbol
could be 'D:\VisualStd2005\VC\PlatformSDK\include\winuser.h(7205) : int MessageBox(HWND,LPCTSTR,LPCTSTR,UINT)'
or 'c:\windows\microsoft.net\framework\v2.0.50727\system.windows.forms.dll : System::Windows::Forms::MessageBox'

Подключил функцию нашала :)
Но тут вообще не понятно что ей надо : Я уж даже так сделал :
Код: plaintext
1.
2.
3.
4.
5.
6.
LPCTSTR S,B;
S="222";
B="444";
UINT I=MB_OK;
MessageBox(NULL,S,B,I);	

...
Рейтинг: 0 / 0
Не понял решил посмотреть на Visual Studio 2005
    #34413514
Begem0t!k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто что посоветует ! Так не ожиданно полсе C++ Builder где MessageBox(NULL,"1","2",MB_OK); и никаких проблем )
...
Рейтинг: 0 / 0
Не понял решил посмотреть на Visual Studio 2005
    #34413520
Begem0t!k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опа еще круче ))

MessageBox(HWND(this->Handle),S,B,I);

решил вместо NULL хэндл формы вставить и что вы думаете:
d:\visualstudioproj\winforms\winforms\Form1.h(93) : error C2440: '<function-style-cast>' : cannot convert from 'System::IntPtr' to 'HWND'

Как типы ты в Visual C++ переводить то :)
...
Рейтинг: 0 / 0
Не понял решил посмотреть на Visual Studio 2005
    #34413538
Begem0t!k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А да кажеться надо ведь так ::MessageBox(NULL,S,B,I); ???

Тогда вылазит это:
WinForms.obj : error LNK2028: unresolved token (0A000010) "extern "C" int __stdcall MessageBoxW(struct HWND__ *,wchar_t const *,wchar_t const *,unsigned int)" (?MessageBoxW@@$$J216YGHPAUHWND__@@PB_W1I@Z) referenced in function "extern "C" int __clrcall MessageBox(struct HWND__ *,wchar_t const *,wchar_t const *,unsigned int)" (?MessageBox@@$$J0YMHPAUHWND__@@PB_W1I@Z)
WinForms.obj : error LNK2019: unresolved external symbol "extern "C" int __stdcall MessageBoxW(struct HWND__ *,wchar_t const *,wchar_t const *,unsigned int)" (?MessageBoxW@@$$J216YGHPAUHWND__@@PB_W1I@Z) referenced in function "extern "C" int __clrcall MessageBox(struct HWND__ *,wchar_t const *,wchar_t const *,unsigned int)" (?MessageBox@@$$J0YMHPAUHWND__@@PB_W1I@Z)
...
Рейтинг: 0 / 0
Не понял решил посмотреть на Visual Studio 2005
    #34413556
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Begem0t!k : Вы же используете Managed C++, так и пишите MessageBox::Show(this,"Сообщение");
...
Рейтинг: 0 / 0
Не понял решил посмотреть на Visual Studio 2005
    #34413564
Begem0t!k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне интересно не само использование функции диалогового окна а работа с функцией Win 32 API
Просто функции WIn 32 API не работают !

И еще в чем причина пишу using namespace std;
'std' : a namespace with this name does not exist
...
Рейтинг: 0 / 0
Не понял решил посмотреть на Visual Studio 2005
    #34413565
Begem0t!k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может я не на том пишу ? У меня Visual Studio 2005 пишу на C++ выбраал Windows Application
...
Рейтинг: 0 / 0
Не понял решил посмотреть на Visual Studio 2005
    #34413572
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Begem0t!kМожет я не на том пишу ? У меня Visual Studio 2005 пишу на C++ выбраал Windows Application

Windows Forms Application - это .NET
...
Рейтинг: 0 / 0
Не понял решил посмотреть на Visual Studio 2005
    #34413608
Begem0t!k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что надо MFC Application ?
...
Рейтинг: 0 / 0
Не понял решил посмотреть на Visual Studio 2005
    #34413610
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Begem0t!kА что надо MFC Application ?
Можно и так.
...
Рейтинг: 0 / 0
Не понял решил посмотреть на Visual Studio 2005
    #34413620
Begem0t!k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не разу не делал но вопрос ?
MFC:

Я так понел надо добавлять переменную вот я кинул на форму ListBox
AddVariable-> там private тип Control и имя lb1

Дак в редакторе this->lb1 а дальше как ???
вот так не работает this->lb1-> и this->lb1.

Как обратиться к свойствам ListBoxa ,,,???
...
Рейтинг: 0 / 0
Не понял решил посмотреть на Visual Studio 2005
    #34413689
Begem0t!k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MyList.AddString(reinterpret_cast<LPCTSTR>(S)); - это типа ListBox почему вместо S наприме "555"

выводиться 2 квадрата и в конце 5 ! А если текст то тож самое тока последнюю букву видно .
В чем косяк ?
...
Рейтинг: 0 / 0
Не понял решил посмотреть на Visual Studio 2005
    #34414479
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы использовать WinAPI MessageBox
пишем #include <windows.h>

если юзаем MFC, то читаем справку (вроде бы MFC не компилится, если включен Windows.h)

Вопросы по листбоксу - лучше в отдельный топик.
...
Рейтинг: 0 / 0
Не понял решил посмотреть на Visual Studio 2005
    #34416564
AlexeyL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
WinAPI MessageBox

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

winuser подключать не нужно. Достаточно windows.h.
Вызов
Код: plaintext
1.
MessageBox( 0 , "Message", "Caption", MB_OK);

работает прекасно.


Спорим
MyList.AddString("555");
добавит нормальные значения ? ))))
Ты преобразуешь, к тому же принудительно, число 555 преобразуешь к типу - указатель на массив char. Ничего хорошего из этого не получится.
...
Рейтинг: 0 / 0
Не понял решил посмотреть на Visual Studio 2005
    #34416657
Begem0t!k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexeyLWinAPI MessageBox

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

winuser подключать не нужно. Достаточно windows.h.
Вызов
Код: plaintext
1.
MessageBox( 0 , "Message", "Caption", MB_OK);

работает прекасно.


Спорим
MyList.AddString("555");
добавит нормальные значения ? ))))
Ты преобразуешь, к тому же принудительно, число 555 преобразуешь к типу - указатель на массив char. Ничего хорошего з этого не получится.

Дак я бы не приводил он ругаеться на несосответствие типов !
...
Рейтинг: 0 / 0
Не понял решил посмотреть на Visual Studio 2005
    #34416862
IMil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Begem0t!kMyList.AddString(reinterpret_cast<LPCTSTR>(S)); - это типа ListBox почему вместо S наприме "555"

выводиться 2 квадрата и в конце 5 ! А если текст то тож самое тока последнюю букву видно .
В чем косяк ?
Видимо, подключены библиотеки MFC с поддержкой Unicode. В этом случае и передаваемые строки должны быть в формате wchar_t* ,он же LPWSTR (по 2 байта на каждый символ). Обычная строка вида "Hello world" имеет тип char*. Преобразовывать ее с помощью reinterpret_cast бессмысленно, ибо этот оператор не меняет данных, а лишь вводит в заблуждение компилятор. Советую его временно забыть.
Юникодовские строки записываются в формате
Код: plaintext
L"Hello world"
Однако, надежнее всего будет записывать строки, передаваемые функциям Windows API, в виде
Код: plaintext
_T("Hello world")
Возможно, понадобится добавить
Код: plaintext
#include <tchar.h>
Такая запись работает и для двухбайтовых, и для однобайтовых символов.
...
Рейтинг: 0 / 0
Не понял решил посмотреть на Visual Studio 2005
    #34417023
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или так

Код: plaintext
SysWin32::MessageBox( 0 , L"Hello world!", L"Greetings",  0 );

или так

Код: plaintext
1.
String^ msg = L"Insuffient information : cannot start";
        System::Windows::Forms::MessageBox::Show( msg, L"Error", MessageBoxButtons::OK, MessageBoxIcon::Exclamation);

либа напрямую

Код: plaintext
1.
2.
3.
4.
5.
namespace SysNetLib
{
   [DllImport("ntwdblib.dll", EntryPoint = "MessageBox", CharSet = CharSet::Unicode )]
   Int32 MessageBox( Int32 hWnd, String^ lpText, String^ lpCaption, 
                     UInt32 uType );
}
...
Рейтинг: 0 / 0
Не понял решил посмотреть на Visual Studio 2005
    #34417141
Begem0t!k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем все заработало !
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Не понял решил посмотреть на Visual Studio 2005
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]