Создать новый массив на 5 элементов, скопировать содержимое старого в новый, удалить старый. Не издеваться над собой и использовать vector.
Есть консольное приложение с вводом данных. Можно ли сделать, чтобы при вводе определенного символа(например &) появлялось окно(WinApi)?
Code: // cl testwind.c rsrc.res #include <windows.h> #include <stdlib.h> #include <stdio.h> //////////////////////////////////////////////////////////////////////////////////////// int __stdcall DialogFunc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam) { switch(msg) { case WM_DESTROY: case WM_CLOSE: EndDialog(hDlg, 0); return 1; case WM_COMMAND: //... return 1; case WM_INITDIALOG: //... return 1; } return 0; } //////////////////////////////////////////////////////////////////////////////////////// int main() { char c; for(;;) { scanf("%c", &c); if('x' == c) break; if('&' == c) DialogBox(GetModuleHandle(0), MAKEINTRESOURCE(101), NULL, (DLGPROC)DialogFunc); } return 0; }
Можно. Я привык в простых случаях пользоватся DialogBox(). В редакторе ресурсов создаю скрипт rsrc.rc, собираю с rc rsrc.rc, потом собираю прогу с cl proga.c rsrc.res
Можете привести пример с CreateWindow? Я не совсем понимаю, что значит WIndowProcess и как правильно вызывать создание окна.
что выводить хочешь? может тебе обычного MessageBox хватит. если нет то создавай класс окна, регистрируй его в системе, создавай окно, обрабатывай, обрабатывай события. RegisterClassEx CreateWindow ShowWindow пример - первая ссылка с гугла: http://www.winprog.org/tutorial/simple_window.html ну русском документации подробной навалом тоже.
Кто может просветить, какой будет результат нижеследующей однострочной фунции в C для this = 0 double __thiscall sub_1(int this) { return * (double *) (this + 12); } и почему, загвоздка в этом дурацком наборе операндов * (double * ) что это такое - вроде не дереференс, ведь поинтер то не объявлен я пробовал у себя под Win 7 - компилируется, но виснет на этапе выполнения
Пользователским программам недоступно адресное пространство ниже 0x10000, значит никакой. Да и __thiscall вещь довольно специфическая в win программах.
Здравствуйте. Подскажите пожалуйста, какой функцией можно перемещать объект уже в запущенном окне. Например чтобы кнопочка бегала за курсором мыши при сообщении WM_MOUSEMOVE. Спасибо. WinAPI C++.
Code: //... case WM_MOUSEMOVE: SetWindowPos(hWnd, NULL, LOWORD(lParam), HIWORD(lParam), 0, 0, SWP_NOSIZE); return 1; //...
Подскажите, как сделать это по нормальному ? [c++] Code: unsigned short CPacketMgr::GetOpcode() { BYTE b1 = m_bpData[m_PacketLen - 4]; BYTE b2 = m_bpData[m_PacketLen - 3]; unsigned short res = 0; __asm { push ax; mov ah, b1; mov al, b2; mov res, ax; pop ax; } return res; } Т.е. из определённого диапазона байт в массиве байт вытянуть 2 байта и вывернуть его в ushort.
unsigned short CPacketMgr::GetOpcode() { return (m_bpData[m_PacketLen - 4] << 8) | m_bpData[m_PacketLen - 3]; }