Страница 158 из 386
Re: Вопросы по С/С++ (СИ)
Добавлено: Пт июн 14, 2013 09:19:41
Kavka
"обрезанный по маске" это отдельные биты проверить чтобы?
Тогда
if ( c != (PINC & 0b00000001) )
Переменная c будет сравниваться с числом полученным от наложения побитового И на значение прочитанное из порта PINC.
Re: Вопросы по С/С++ (СИ)
Добавлено: Пт июн 14, 2013 09:20:04
ibiza11
if (c != (PINC&0x01))
Re: Вопросы по С/С++ (СИ)
Добавлено: Пт июн 14, 2013 12:05:14
Мikа
Я был близок к истине, спасибо

Re: Вопросы по С/С++ (СИ)
Добавлено: Пт июн 14, 2013 12:57:16
Мikа
Парни, а теперь вот что за вопрос (гугл не очень помог): как правильно сделать вынесеный файл имя.h и к нему обратиться.
Условно у меня есть строка, которая делает PORTB=(a+c);
Я хочу вынести эту строку в отдельный файл и прикрепить её через #include имя-файла. А потом в порграмме ставить какое-то слово, которое будет при компиляции заменяться на PORTB=(a+c);. Как это пишется? Я пробовал в АСтудии 6 создавать файл.h, но что-то я не так с функциями там пишу видимо Оо
Re: Вопросы по С/С++ (СИ)
Добавлено: Пт июн 14, 2013 13:33:21
Аlex
Re: Вопросы по С/С++ (СИ)
Добавлено: Пт июн 14, 2013 16:03:29
menzoda
Да это не на сайт ПИКа нужно отправлять, а к Кернигану и Ричи. Неужели нельзя почитать базовую литературу, чтобы не засорять форум такими вопросами? А про гугл ты нагло врешь,
все там есть.
Re: Вопросы по С/С++ (СИ)
Добавлено: Пт июн 14, 2013 16:25:25
vitalik_1984
зачем переменная? не совсем понятно зачем она нужна.
Можно вообще не использовать сравнение в условиях
например так
if(!PINC&0b00000001){
//тут все что нужно;}
Ой

уже ответили

Re: Вопросы по С/С++ (СИ)
Добавлено: Пн июн 17, 2013 16:40:14
АндрейАвербах
Всем доброго времени суток. С моим вопросом мне посоветовали идти сюда.
Только начал изучать WinAPI в С++ написал такой код.
Код: Выделить всё
#include <windows.h>
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
MessageBox(0, "Info", "Text", MB_OK);
return 0;
}
Компилирую в Dev-C++, компилируется нормально, запускаю, вылазит мое окошко и какое-то черное окошко. Как убрать черное окошко?
Re: Вопросы по С/С++ (СИ)
Добавлено: Пн июн 17, 2013 16:58:31
Tolmi
Черное окошко - я так понимаю консоль.
Надо создать правильный проект, для GUI приложения.
Re: Вопросы по С/С++ (СИ)
Добавлено: Пн июн 17, 2013 17:06:39
ChipKiller
чтобы не было подобных вопросов, начните с основ - Петцольд Ч. Программирование для Windows 95
Re: Вопросы по С/С++ (СИ)
Добавлено: Пн июн 17, 2013 21:08:33
FreshMan
как сделать циклический сдвиг ?
Re: Вопросы по С/С++ (СИ)
Добавлено: Пн июн 17, 2013 21:19:21
Аlex
Создать цикл и в нём сдвигать.
Re: Вопросы по С/С++ (СИ)
Добавлено: Пн июн 17, 2013 21:28:03
FreshMan
может я неверно выразился или недопонимаю что-то, но под циклическим сдвигом я понимаю сдвиг, допустим в право, при котором ушедшие разряды не пропадают а появляются с лева
Re: Вопросы по С/С++ (СИ)
Добавлено: Пн июн 17, 2013 21:36:56
ibiza11
ну да. можно и так понимать циклический сдвиг. но от этого не меняется сам принцип, сделать цикл и сдвигать)))
Re: Вопросы по С/С++ (СИ)
Добавлено: Пн июн 17, 2013 21:42:52
Аlex
Код: Выделить всё
unsigned int i=0;
i=((i&1)<<15)|(i>>1); // вправо
i=((i&(1L<<15))>>15)|(i<<1); // влево
Код будет меньше, если написать его в несколько строк - сохранение бита, сдвига переменной и вставка сохранённого бита с другой стороны переменной.
Re: Вопросы по С/С++ (СИ)
Добавлено: Вт июн 18, 2013 12:42:48
АндрейАвербах
Написал такую штуку в учебных целях
Код: Выделить всё
#include <windows.h>
#include <windowsx.h>
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
void OnDestroy(HWND);
void OnPaint(HWND);
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR, int)
{
char szClassName[] = "MainWindow";
char szTitle[] = "My second window!";
MSG Msg;
WNDCLASS wc;
ZeroMemory(&wc, sizeof(wc));
wc.lpfnWndProc = WndProc;
wc.hInstance = hInst;
wc.hIcon = LoadIcon(0, IDI_APPLICATION);
wc.hCursor = LoadCursor(0, IDC_ARROW);
wc.hbrBackground = (HBRUSH) 0;
wc.lpszClassName = szClassName;
RegisterClass(&wc);
HWND hwnd = CreateWindow(szClassName, szTitle, WS_OVERLAPPEDWINDOW, 100, 100, 500, 500, HWND_DESKTOP, 0, hInst, 0);
ShowWindow(hwnd, SW_SHOWNORMAL);
while (GetMessage(&Msg, NULL, 0, 0))//Íå ñòàâèòü òî÷êó ñ çàïÿòîé òóò!!!
{
DispatchMessage(&Msg);
}
return 0;
}
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch(message)
{
HANDLE_MSG(hwnd, WM_PAINT, OnPaint);
HANDLE_MSG(hwnd, WM_DESTROY, OnDestroy);//Âìåñòî case
default:
return(DefWindowProc(hwnd, message, wParam, lParam));
}
return 0;
}
void OnDestroy(HWND)
{
PostQuitMessage(0);
}
void OnPaint(HWND hwnd)
{
char szText[] = "Òåêñò äëÿ ãëàâíîãî îêíà";
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hwnd, &ps);
TextOut(hdc, 0, 0, szText, strlen(szText));
EndPaint(hwnd, &ps);
}
Компилирую, компилятор пишет [Linker error] undefined reference to `TextOutA@20' ld returned 1 exit status , что делать - не пойму.
Re: Вопросы по С/С++ (СИ)
Добавлено: Вт июн 18, 2013 12:59:05
ChipKiller
АндрейАвербах писал(а):... что делать - не пойму.
сделать, что просит линкер - подключить Gdi32.lib
PS. на подобные вопросы ответ есть
здесь
Re: Вопросы по С/С++ (СИ)
Добавлено: Вт июн 18, 2013 13:33:11
АндрейАвербах
После инклудов написал такую строку
Не помогает

Re: Вопросы по С/С++ (СИ)
Добавлено: Вт июн 18, 2013 14:17:05
АндрейАвербах
Создал всю эту штуку как проект и о чудо! все заработало даже без подключения библиотеки!
Re: Вопросы по С/С++ (СИ)
Добавлено: Чт июн 20, 2013 11:26:32
Мikа
vitalik_1984 писал(а):
if(!PINC&0b00000001){
//тут все что нужно;}
Это будет значить проверку нулевого бита порта С, и выражение будет считаться истиной, если результат логического И будет нулём?