Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.97.9.174] |
|
Страницы: (2) [1] 2 все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
№1
Создал win32 aplication в VC++ 2005 (winapi приложение)...в общем, все диалоги и т.д. можно редактировать через оч удобный редактор.. (все это чудо хранится в rc файле)..но я хочу чтоб главное окно тоже бралось с rc, так на много удобней его рисовать №2 Пытаюсь исползовать MessageBox(); пишу вот так: "MessageBox(NULL,"TEST!",NULL,0);" И оно мне: cannot convert parameter 2 from 'const char [5]' to 'LPCWSTR' Если пишу вот так: "MessageBox(NULL,LPCWSTR("TEST!"),NULL,0);" ошибок нет, но вместо текста выводятся какие-то карлякули... Надеюсь вопросы не слишком тупые Спасибо заранее |
Сообщ.
#2
,
|
|
|
1.
Цитата Jeno @ но я хочу чтоб главное окно тоже бралось с rc, так на много удобней его рисовать Главное тока руками 2. MessageBox(NULL,L"TEST!",L"",0); |
Сообщ.
#3
,
|
|
|
жалко
|
Сообщ.
#4
,
|
|
|
Цитата cozzzy @ 2. MessageBox(NULL,L"TEST!",L"",0); Лучше MessageBox(NULL, _T("TEST!"),_T(""),0); |
Сообщ.
#5
,
|
|
|
есть щее пару вопросов...
1.как узнать какой тип данных у переменной? 2.как перевести с одного типа в другой? например LPWSTR в u_short... и откуда вообще вы узнаете как переводить с одного типа данных в другой?!их же не мерено...и в мсдн я даже не представляю что написать... з.ы.может где-то дока есть...возможно список все типов данных... |
Сообщ.
#6
,
|
|
|
Цитата Jeno @ их же не мерено Да их вообще мало, просто такие типы, как LPWSTR всего лишь являются макросами и LPWSTR это всего лишь (wchar_t *) Цитата Jeno @ в мсдн я даже не представляю что написать... data conversion routines Цитата Jeno @ как узнать какой тип данных у переменной? Посмотри на typeid() |
Сообщ.
#7
,
|
|
|
1. чтобы главное было в .rc файле - создавай MFC Dialog
2. MessageBox(NULL, TEXT("Hello !!!"), NULL, MB_OK) - без подключения MFC MessageBox(NULL, _T("Hello !!!"), NULL, MB_OK) - с подключением MFC если хочешьо задавать явно, то: MessageBoxA(NULL, "Hello !!!", NULL, MB_OK); // ANSI MessageBoxW(NULL, L"Hello !!!", NULL, MB_OK); // Unicode непонятно токо, зачем переводить LPWSTR в u_short??? LPWSTR - это указатель (4 байта), а u_short - число (2 байта)... потери будут ! |
Сообщ.
#8
,
|
|
|
Цитата alexander.stoyan, 28.12.2006, 10:14:30, 1394212 1. чтобы главное было в .rc файле - создавай MFC Dialog разницы помоему нет какой тип проекта если MFC то лезим в InitInstance и там решаем кто будет главным. если АПИ, то помоему там тоже всё понятно |
Сообщ.
#9
,
|
|
|
есть поле для ввода текста, оно возвращет данные в LPWSTR, нужно эти данные вставить в функцию...
вот смотрите: вот так вот появляется ошибка...потому что inet_addr() и htons() ругается на то что port и host являются LPWSTR... char port[10] = ""; char host[50] = ""; GetDlgItemText(hDlg,IDC_PORT,LPWSTR(port),10); GetDlgItemText(hDlg,IDC_HOST,LPWSTR(host),50); clientService.sin_addr.s_addr = inet_addr(host); clientService.sin_port = htons(port); и я не знаю как переконвертировать....пробовал вот так: clientService.sin_port = htons(u_short(port)); |
Сообщ.
#10
,
|
|
|
char port[10] = ""; char host[50] = ""; GetDlgItemTextA(hDlg,IDC_PORT,port,10); GetDlgItemTextA(hDlg,IDC_PORT,host,50); clientService.sin_addr.s_addr = inet_addr(host); clientService.sin_port = htons(port); |
Сообщ.
#11
,
|
|
|
может так?
int WideCharToMultiByte( UINT CodePage, // code page DWORD dwFlags, // performance and mapping flags LPCWSTR lpWideCharStr, // wide-character string int cchWideChar, // number of chars in string LPSTR lpMultiByteStr, // buffer for new string int cbMultiByte, // size of buffer LPCSTR lpDefaultChar, // default for unmappable chars LPBOOL lpUsedDefaultChar // set when default char used ); |
Сообщ.
#12
,
|
|
|
Цитата ElcnU @ может так? int WideCharToMultiByte( UINT CodePage, // code page DWORD dwFlags, // performance and mapping flags LPCWSTR lpWideCharStr, // wide-character string int cchWideChar, // number of chars in string LPSTR lpMultiByteStr, // buffer for new string int cbMultiByte, // size of buffer LPCSTR lpDefaultChar, // default for unmappable chars LPBOOL lpUsedDefaultChar // set when default char used ); это для винапи? з.ы.мне нужно научится переводить типы данных....или не возможно перевести LPWSTR в u_short??? -Added Цитата alexander.stoyan @ char port[10] = ""; char host[50] = ""; GetDlgItemTextA(hDlg,IDC_PORT,port,10); GetDlgItemTextA(hDlg,IDC_PORT,host,50); clientService.sin_addr.s_addr = inet_addr(host); clientService.sin_port = htons(port); port и host приходится переводить в LPWSTR, так как GetDlgItemText() ругается....просит LPWSTR а не char.... |
Сообщ.
#13
,
|
|
|
а ты точно GetDlgItemTextA написал?
|
Сообщ.
#14
,
|
|
|
Цитата Jeno, 28.12.2006, 14:23:56, 1394613 з.ы.мне нужно научится переводить типы данных....или не возможно перевести LPWSTR в u_short??? ну и переведёшь в соответствии с требуемой кодировкой |
Сообщ.
#15
,
|
|
|
вот смотрите:
void mconnect(u_short port, char *host) { ... clientService.sin_addr.s_addr = inet_addr("127.0.0.1"); clientService.sin_port = htons(port); ... } char port[10] = ""; char host[50] = ""; GetDlgItemTextA(hDlg,IDC_PORT,port,10); GetDlgItemTextA(hDlg,IDC_HOST,host,50); mconnect(u_short(port),host); ошибок нет, но данные повреждаются (когда в поле (IDC_PORT) вписываю порт 8090 то клиент пытается подконнектится и потом выдает ошибку...но если я в htons(port); вместо переменной port вписываю просто 8090 то все ок)...где нужно исправить?! и помечу??? з.ы.сори за наглость...больше не у кого спросить.. |