мой ранее вопрос Я розобрался почему не работает! Все дело в stdafx.h! Т.е. когда я создаю консольное приложение win32, все работает! А когда создаю пустой проект работать отказывается! Почему SetConsoleTitle зависит от библиотеки stdafx.h? p.s. Компилятор VS 2008
stdafx это просто хрень для предкомпилированных заголовков, от нее вряд ли может зависеть работа программы. Просто всегда надо консольное приложение создавать, а с предкомпилированными заголовками или без - уже без разницы.
Всем привет. Подскажите, пожалуйста, почему не биндит порт? Выдает ошибку 10049. Code: #include <iostream> #include <winsock2.h> using namespace std; char buf[128]; int main() { WSADATA wd; WSAStartup(MAKEWORD(2,2), &wd); int sock; int FuncRes; struct sockaddr_in addr; struct hostent *h; if(gethostname(&buf[0], 128) == 0) { h = gethostbyname(&buf[0]); if(h != NULL) { MessageBox(0,inet_ntoa (*(reinterpret_cast<in_addr *>(*(h->h_addr_list)))),0,0); } else { MessageBox(0,"Вы не в сети. И IP адреса у вас нет.",0,0); } } addr.sin_addr.s_addr = (unsigned long) h->h_addr; sock = socket(AF_INET, SOCK_STREAM, 0); addr.sin_family = AF_INET; addr.sin_port = htons(5678); FuncRes = bind(sock, (sockaddr *)&addr, sizeof(addr)); if(FuncRes == SOCKET_ERROR) { wprintf(L"bind failed with error %u\n", WSAGetLastError()); closesocket(sock); WSACleanup(); return 1; } else { wprintf(L"Bind successfull"); } return 0; }
Code: addr.sin_addr.s_addr = (unsigned long) h->h_addr; замени на Code: ((unsigned long *)&addr.sin_addr)[0]= ((unsigned long **)h->h_addr_list)[0][0]; и кури "Учитель игры на WinSocks".
C++ Builder Indy - проблемы с кодировкой. Подскажите пожалуйста, как получить страницу в правильной кодировке? не получается ну никак! Код такой: IdHTTP1->Request->CharSet = "windows-1251"; IdHTTP1->Response->CharSet = "windows-1251"; Memo1->Text=IdHTTP1->Get("http://forum.mybb.ru/misc.php"); Я пробовал все эти варианты IdHTTP1->Request->AcceptCharSet="windows-1251;utf-8"; IdHTTP1->Request->AcceptLanguage="ru-ru,ru"; IdHTTP1->Response->CharSet = "windows-1251"; все равно приходит черт его знает какая кодировка. Или у меня Инди глючит, или я что-то не знаю..
Есть два файла file1, file2 На выходе нужно получить данные file1 без file2 (построчное сравнение) Подскажите как, а то через потоки как то криво получается, медленно...
попробуй вместо потоков использовать стандартный сишные функции для работы с файлами: напиши функцию поиска строки в файле: PHP: bool fcontains(char *fname,char *s) { FILE *f=fopen(fname,"r"); while(!feof(f)) { char str[255]; if( fgets(str,256,f)!=NULL && strcmp(str,s)==0 ) return true;//строка есть в файле } return false;//строку так и не нашли } и со второго файла читай строки и проверяй наличие их во втором файле: PHP: FILE *fp=fopen("file1","r"); while(!feof(fp)) { char str[255]; if(fread(str,256,fp)!=NULL && !fcontains("file2",str)) printf("%s\n",str); } правда для больших файлов будет долго проверяться, т.к. оно проходиться по второму файлу n раз, где n==кол-во строк в первом файле
Visual C++ 2010 Приложение Windows Forms Как измерить время выполнения определённого куска кода (в милисекундах)? Функции getTime и getTickTime пробовал, но не , какие-то неясные ошибки в MMsystem.h Код с использованием windows.h и метода clock() компилируется, но почему-то на выходе таймер всегда равен нулю. Code: clock_t time = clock(); simMeth1 = FirstSum.GetSimple(); // Вычисления time = clock() - time; simTime1 = (double) time/CLOCKS_PER_SEC; ставил даже большой цикл между time=clock() и time = clock()-time; всё равно ноль. Спасибо. Разобрался сам: при использовании функции clock() результат был равен нулю, т.к. время выполнения было очень маленьким. Вызывал time = clock(), прогонял алгоритм около 10кк раз (потому что он маленький), и брал time = clock() - time. Время выполнения получается отличным от нуля. Остаётся только поделить на кол-во итераций (10кк), помноженные на кол-во тиков, для получения результата в секундах
Подскажите плз как в цикле сделать strcat Code: #include <iostream> #include <stdio.h> #include <vector> #include <string.h> using namespace std; int main() { vector<char> my; char out[255]=""; for(char a='a';a<='z';a++) { my.push_back(a); } for(int i=0;i<=my.size();i++) { strcat(out, my[i]); } return 0; }
Code: int main() { vector<char> my; char out[255]=""; for(char a='a';a<='z';a++) { my.push_back(a); } strcat(out, &my[0]); out[my.size()]= 0; return 0; } strcat добавляет к одной строке(out) другую, от начала до символа \0, следовательно цикл for не нужен, достаточно передать в strcat указатель на первый символ строки my (&my[0]) Потом следует завершить строку (поставить в конец символ 0)
Как сделать что бы компиль понимал просто вызов,типа MessageBox.А то понимает только MessageBoxA. MSVS2010 Express. и если не сложно дайте пример создания контрола с обработкой события(чистый си).спасибо.
чет не догоняю.надо заставить работать это Code: #include <windows.h> LRESULT CALLBACK MainWinProc(HWND,UINT,WPARAM,LPARAM); #define ID_MYBUTTON 1 HWND hMainWnd; MSG msg; int ss; HINSTANCE hInst; int WINAPI WinMain(hInst,HINSTANCE,LPSTR, ss) { WNDCLASS wc; wc.style=0; wc.lpfnWndProc=MainWinProc; wc.cbClsExtra=wc.cbWndExtra=0; wc.hInstance=hInst; wc.hIcon=NULL; wc.hCursor=NULL; wc.hbrBackground=(HBRUSH)(COLOR_WINDOW+1); wc.lpszMenuName=NULL; wc.lpszClassName="Example 4 MainWnd Class"; if (!RegisterClass(&wc)) return FALSE; hMainWnd=CreateWindow("Example 4 MainWnd Class","EXAMPLE 4",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInst,NULL); if (!hMainWnd) return FALSE; ShowWindow(hMainWnd,ss); UpdateWindow(hMainWnd); while (GetMessage(&msg,NULL,0,0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; } LRESULT CALLBACK MainWinProc(HWND hw,UINT msg,WPARAM wp,LPARAM lp) { switch (msg) { case WM_CREATE: CreateWindow("button","My button",WS_CHILD|BS_PUSHBUTTON|WS_VISIBLE, 5,5,100,20,hw,(HMENU)ID_MYBUTTON,NULL,NULL); return 0; case WM_COMMAND: if ((HIWORD(wp)==0) && (LOWORD(wp)==ID_MYBUTTON)) MessageBox(hw,"You pressed my button","MessageBox",MB_OK|MB_ICONWARNING); return 0; case WM_DESTROY: PostQuitMessage(0); return 0; } return DefWindowProc(hw,msg,wp,lp); } создается просто окно с кракозябрами в заголовке.все.ни батона ни хера нету.
Нафига глобальные переменные создавать? В приведенном варианте лично у меня пример даже не копилируется. Хотя если немного поправить немного аргументы WinMain, то окно появляется с кнопкой.
если задавать типа hwnd hMainWnd=createwindow, то у меня не компилится. буду благодарен за рабочий пример.
Тут вопрос в другом. У тебя в принципе не скомпилится вот эта строка: Code: int WINAPI WinMain(hInst,HINSTANCE,LPSTR, ss)
оно то компилится,как я уже выше описал,выходит окно без кнопки.и еще выше я писал,что если использовать префиксы в функциях,например CreateWindowA то оно и с кнопкой появляется,только вот обработчик кнопки не пашет и мессага не появляется.а в чем проблема то я понять не могу.