Мне кажется, Вы чуть-чуть ошиблись топиком Разработка, описанная таким образом, близка к какому-нибудь autoit или autohotkey. А вообще, сначала нужно отловить пакетики, которые шлются при нажатии на кнопку, потом курлом или сокетами отправлять запросы эти с нужными параметрами.
memset опитимизированна и заполняет память блоками размером с битность системы(по крайней мере на 32 битной юзается копирование по 32 бита за шаг) 749EB37F rep stos dword ptr es:[edi] strcpy копирует по одному байту.
привет всем =) кто какую библиотеку с регулярками для С++ юзает? PCRE, Boost? и если можно пример использования.. Среда VS2008
Hiro Protagonist работает, попробуй. Ra$cal ок спасибо. просто в одной вражеской программе (как я понял) используется именно strncpy для заполнения нулями. я подумал может так модно или чо). а может RtlZeroMemory круче всех?) и ещо вопрос. вот пишет Крис если я собираю программу в VS08, указываю точку входа, то что я теряю? я не смогу юзать некоторые функции?
2zeppe1in >> Если длина строки src меньше len, то буфер добивается до len нулями. да, про такое поведение strncpy я забыл )) Какбэ рантайм обеспечивает некоторые механизмы, без которых не обойтись если хочешь использовать libc (поддержку потоков, глобальные переменные, вызов конструктуров-десктрукторов, ну и тд) для полного избавление от crt надо ещё отключать линк mscrt.lib (NODEFAULTLIB). Крис там немного не точен. Все таки если не выдирать заголовочные файлы и либы из ddk, то ntdll работать несколько неудобно, хотя в случае натива выбора немного ). часть libc продублировано с системных длл kernel32.dll (lstrcpy, lstrcat ...), advapi32.dll (wsprintf ...), shlwapi.dll (StrStr, MemoryCopy, ...) и тд, те все базовые функции, которые в основном нужны по работе со строками и тд.
Люди добрые есть маленький вопрос , есть ли у функции wsprintf какие нибудь ограничение , немогу форматировать строку когда один из поинтеров большого размера... Если есть ограничение как в данном случае быть ?
hi2all people, народ подскажите в С++ буилдер в редакторе кода на руском можно писать ? а то вири потрепали ПО а перебивать жалко..., 4 года назад помнится писал вот тока непомню толи в delphi то ли С++ буилдер, пишу там [ авыф (норм пишется) ] а [ олдж ( ои№ж) ], настройки уже досканально изучил бестолку
Всем привет.Народ,что означает ошибка "Redeclaration of std::ifstream in" и как с ней бороться.Я открыл один файл для чтения,считал все что нужно,закрыл его.Стал открывать второй и выскочила эта ошибка.Спасибо за помощь.
Ну и я сам столкнулся с задачей: Как можно программно определить наличие/конфигурацию прокси сервера, фаервола в сети, а также конфигурацию самой сети (с доменами или без)? Спасибо.
Вот код: #include <iostream.h> #include <math.h> #include <stdio.h> #include <fstream.h> //приведение коэффициентов матрицы А, лежащих на главной диагонали //к ненулевым,если приведение успешно функция возвращает значение true int Diagonal(double **A, double *B, int column, int NumberOfEquation) { int result = 0; int i, row = column; double replace; if(column == NumberOfEquation - 1) { result = A[column][column] != 0; } else { while(!result && row < NumberOfEquation) { if(A[row][column] != 0) { if(row != column) { for(i=0;i < NumberOfEquation;i++) { replace = A[column]; A[column] = A[row]; A[row] = replace; } replace = B[column]; B[column] = B[row]; B[row] = replace; } result = Diagonal(A, B, column + 1, NumberOfEquation); if(result) { break; }
} row++; } } return result; } //если коэффициенты матрицы на главной диагонали не равны 0, то //приступаем к решению СЛАУ методом простых итераций int SimpleIteration(double **A, double *B, int NumberOfEquation, double *solution, double fault_input) { int result; int i, j, step = 1; double *TempSolution; TempSolution = new double[NumberOfEquation]; result = Diagonal(A, B, 0, NumberOfEquation); if(result) { double fault = fault_input + 1; for(i=0;i < NumberOfEquation;i++) { for(j=0;j < NumberOfEquation;j++) { if(i != j) { A[j] = -A[j] / A; } } B = B / A; A = 0; } //первое приближенное значение вектора неизвестных for(i=0;i < NumberOfEquation;i++) { solution = B; } //пока не найдется решение с заданной точностью или не исчерпается лимит шагов while(fault > fault_input && step <= 1000) {
for(j=0;j < NumberOfEquation;j++) { TempSolution[j] = 0; } for(i=0;i < NumberOfEquation;i++) { for(j=0;j < NumberOfEquation;j++) { TempSolution = TempSolution + A[j]*solution[j]; } TempSolution = TempSolution + B; } //расчет погрешности fault = 0.0; for(j=0;j < NumberOfEquation;j++) { fault = fault + (solution[j] - TempSolution[j])*(solution[j] - TempSolution[j]); } fault = sqrt(fault); //сохранение последующих приближенных значений неизвестных for(j=0;j < NumberOfEquation;j++) { solution[j] = TempSolution[j]; } step++; } } return step; } void DOS_input_output() { int i, j; int size; double **A, *B, *solution, fault_input; cout << "Решение СЛАУ методом простых итераций.\n"; cout << "Введите размерность матрицы: "; cin >> size; A = new double*[size];
for(i=0;i < size;i++) { A = new double[size]; } B = new double[size]; solution = new double[size]; for(i=0;i < size;i++) { cout << "Введите " << i + 1 << " строку матрицы А: "; for(j=0;j < size;j++) { cin >> A[j]; } } cout << "Введите вектор В: "; for(j=0;j < size;j++) { cin >> B[j]; } cout << "Введите точность вычислений: "; cin >> fault_input; int steps = SimpleIteration(A, B, size, solution, fault_input); if(steps > 1000) { cout << "Слишком большое количество итераций."; } else { cout << "Решение системы:\n"; for(j=0;j < size;j++) { cout << solution[j] << "\n"; } cout << "Количество итераций: " << steps; } delete []A; delete []A; delete []B; delete []solution; } int main() { DOS_input_output(); getchar(); return 0; }