 |
Вітаю Вас, Гість · RSS |
 |
Як краще написати цей код? Мета - навчання, вдосконалення.
| |
Дмитроволодимирович |
Дата: Нд, 10.07.2016, 15:56 | Повідомлення № 1 |
Новий користувач
Повідомлень: 6
| Код #include <windows.h>
#define STRLEN(x) (sizeof(x)/sizeof(TCHAR) - 1) const TCHAR szMsg[] = L"What's your name?\n";
void ChangeTextColor(HANDLE hSomeHandle) { INT nArgs = 0; LPWSTR lpCommandLine = GetCommandLine(); LPWSTR* lpArgs = CommandLineToArgvW(lpCommandLine, &nArgs); if(nArgs >= 2 && 0 == lstrcmpi(lpArgs[1], L"green")) { SetConsoleTextAttribute(hSomeHandle, FOREGROUND_GREEN); } LocalFree(lpArgs); }
int main() { HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE); HANDLE hStdin = GetStdHandle(STD_INPUT_HANDLE); TCHAR szName[16]; TCHAR szResp[32]; DWORD dwCount = 0;
ChangeTextColor(hStdout);
WriteConsole(hStdout, &szMsg, STRLEN(szMsg), &dwCount, NULL); ReadConsole(hStdin, &szName, STRLEN(szName), &dwCount, NULL);
if(dwCount >= 2 && '\n' == szName[dwCount-1] && '\r' == szName[dwCount-2]) { szName[dwCount-2] = '\0'; } else if(dwCount > 0) { szName [dwCount]= '\0'; }
wsprintf(szResp, L"Hello, %s!\n", szName); WriteConsole(hStdout, &szResp, lstrlen(szResp), &dwCount, NULL);
ExitProcess(0); } Помилки C: \ API \ Hello \ Hello.cpp | 4 | error: character array initialization string of wide characters | C: \ API \ Hello \ Hello.cpp | 8 | error: cannot convert «LPSTR {aka char *}» to «LPWSTR {aka wchar_t *}» in initialization | C: \ API \ Hello \ Hello.cpp | 10 | error: cannot convert «LPWSTR {aka wchar_t *}» to «LPCSTR {aka const char *}» for argument «1» to «int lstrcmpiA (LPCSTR, LPCSTR)» | C: \ API \ Hello \ Hello.cpp | 36 | error: cannot convert «const wchar_t *» to «LPCSTR {aka const char *}» for argument «2» to «int wsprintfA (LPSTR, LPCSTR, ...) »| || === Build failed: 4 error (s), 0 warning (s) (0 minute (s), 3 second (s)) === |
Ну, по частинах. Щось таке завжди діє
Код [b]char str1[45]="ОЙ ТАМ У ПОЛИ КРИНИЧКА"; char str2[]="ТАМ ХОРОША ВОДИЧКА"; Чом би йому не спрацювати й зараз - все начебто дуже схоже?
Середовище в мене Code::Blocks, компілятор mingw32-g++, проєкт я взагалі не створював. Якщо це буде краще, тоді, будь ласка вкажіть точно який. Але дивиться що трапиться, надпис кодеблок перетворюється на посилання без жодних моїх зусиль або побажань! ви теж це бачіте?
Відредаговано: Дмитроволодимирович - Нд, 10.07.2016, 16:13 |
|
| |
© Форум інформатиків України, 2007-2023.  |