Вопрос по С++

daoway

кот Шрёдингера
Re: Компилятор С

Спорить и не нужно. Просто интересно почему? Чем плох борланд?
Обсуждение данного вопроса офтоп в чистом виде, но раз уж вопрос прозвучал, нет проблем. IT это прежде всего бизнес и успех той или иной технологии на прямую зависит от источника. Где сейчас борланд, а где Microsoft. Плюс ко всему, насколько много серьезных проэктов реализовано на Borland C++ и сколько на VC++. Наиболее известный проект реализованный в среде борланда (для меня, других я не знаю) - это Far. Если мы попробуем посмотреть что реализовывалось на VC++ под Win32 (естессно Win32) мы увидим как минимум web-сервер Apache. Ну и кучу других достаточно известных программных продуктов с открытым исходным кодом, порты которых с Linux делались как раз в VC++. Для меня это весомый довод )
 

daoway

кот Шрёдингера
Re: Компилятор С

gcc - что может быть приятней и проще :)
Если не ошибаюсь версия и под "детей мелкомягких" имеется.
MinGW если не ошибаюсь, есть такой, да и Cygwin никто не отменял ) Но это порты и не Win32 ориентированные продукты. Игряться с win api не получиться, хотя MinGW в глаза не видел, поэтому ручаться не берусь.
 

GrAndSE

Тёмный
Модератор
Re: Компилятор С

MinGW если не ошибаюсь, есть такой, да и Cygwin никто не отменял ) Но это порты и не Win32 ориентированные продукты. Игряться с win api не получиться, хотя MinGW в глаза не видел, поэтому ручаться не берусь.
А что может помешать играться с win api? Не вижу помех если честно. Подключаются библиотеки и всё. Если он может собирать машинный код под Винду, что мешает вызывать эти функции.. Плюс уход на уровень прерываний никто не отменял. Ну мне так кажется, а что там дальше не знаю, и попробовать сейчас как-то неполучится: нет ни возможности (как самого компилятора под винду, так и виндой не пользуюсь дома... где-то валяется, но зачем :)...) ни времени особо чтобы побаловаться.
По-моему, кстати так и называется gcc for windows.
 

daoway

кот Шрёдингера
Re: Компилятор С

А что может помешать играться с win api? Не вижу помех если честно. Подключаются библиотеки и всё. Если он может собирать машинный код под Винду, что мешает вызывать эти функции.. Плюс уход на уровень прерываний никто не отменял.
Не, ну гвозди и посатижами забивать можно, хватило бы дури )
 

GrAndSE

Тёмный
Модератор
Re: Компилятор С

Не, ну гвозди и посатижами забивать можно, хватило бы дури )
Ну касательно ухода на уровень прерываний так это конечно горяча - Винда быстрее работать не начнёт, а упасть с перепугу может :)
А вот касательно того, что были бы хеадеры, изнать где библиотеки лежат под соответствующие апи, так можно прописать и при компиляции -l и всё доолжно быть впордяке по логике вещей.
Хотя сказать, что это самый простой компилятор, так сразу и не скажешь, если использовать msn gcc :). А на деле всё очень просто. ;)
 

setty

Граф
Re: Компилятор С

VC++ 6.0 ИМХО, хотя учитывая суть вопроса смею предположить что для подобного уровня сойдёт почти ЛЮБОЙ!
 

setty

Граф
примитив С++

имеется такой вот кусочек кода (к примеру)
Код:
char ссс[16]={0xE8,[COLOR="Red"]0,0,0,0[/COLOR],0x58,04,0x12,0x50,0xFF,0x15,0,0,0,0,0xC3};
int i=(int)GetModuleHandle("boo.dll");
вопрос в том как затолкать значение из i в ту часть переменной ссс которая выделена красным. Другими словами у меня есть 16 байт в памяти, и начиная со второго в 4 из них нужно положить значение из переменной любого типа который тоже весит 4 байта (int, HANDLE, DWORD...)
 

Sober

______________
Re: примитив С++

Так например:
Код:
char ссс[16]={0xE8,0,0,0,0,0x58,04,0x12,0x50,0xFF,0x15,0,0,0,0,0xC3},*pi;
int i=(int)GetModuleHandle("boo.dll");
pi=(char *)&i;
for(char k=1;k<5;k++)
ccc[k]=*(pi++);
 

quant

yeah
вот написал алгоритм замены в файле одной строки на другую
Код:
[COLOR="Blue"]#include[/COLOR] [COLOR="Sienna"]<stdio.h>[/COLOR]
[COLOR="Blue"]int[/COLOR] main() {
	_iobuf *in, *ou;
	in = fopen ([COLOR="Sienna"]"index.htm"[/COLOR], [COLOR="Sienna"]"r"[/COLOR]);
	ou = fopen ([COLOR="Sienna"]"new.index.htm"[/COLOR], [COLOR="Sienna"]"w"[/COLOR]);
	[COLOR="Blue"]const char[/COLOR] math[]={[COLOR="Sienna"]"ktv"[/COLOR]}, zamena[]=([COLOR="Sienna"]"vip"[/COLOR]);
	[COLOR="Blue"]char[/COLOR] l;
	[COLOR="Blue"]int[/COLOR] counter = 0, cc = 0, leng = [COLOR="Blue"]sizeof[/COLOR](math) - 1, zleng = [COLOR="Blue"]sizeof[/COLOR] (zamena) - 1, j;
	[COLOR="Blue"]do[/COLOR] {
		counter++;
		l = fgetc (in);
		[COLOR="Blue"]if[/COLOR] (math[cc] == l) {
			cc++;
			[COLOR="Blue"]if[/COLOR] (cc == leng) {
				j = 0;
				[COLOR="Blue"]do[/COLOR] {
					fputc (zamena[j++], ou);
				} [COLOR="Blue"]while[/COLOR] (j != zleng);
				cc = 0;
			};
		} [COLOR="Blue"]else[/COLOR] {
			[COLOR="Blue"]if[/COLOR] (cc != 0) {
				j = 0;
				[COLOR="Blue"]do[/COLOR] {
					fputc (math[j++], ou);
				} [COLOR="Blue"]while[/COLOR] (j != cc);
				cc = 0;
			};
			fputc (l, ou);
		};
	} [COLOR="Blue"]while[/COLOR] (!feof(in));
	fclose (in);
	fclose (ou);
	[COLOR="Blue"]return[/COLOR] 0;
}
он меня может спасти от однородной правки 5000 страничек )
всё крута работает НО выходящий файл в блокноте пустой, хотя браузер его норм открывает с правкой
я думаю дело в том, что входящий файл в кодировке UTF-8, хотя все сайты на латинице
подскажите, пожалуйста, как можно исправить ситуацию
 
Останнє редагування:

quant

yeah
quant сказав(ла):
я думаю дело в том, что входящий файл в кодировке UTF-8, хотя все сайты на латинице
замена char на wchar_t не помогла - тоже самое
смотрел в wath window считывается в wchar_t бред и этот же бред записывается в выходящий файл, хотя мазила всё норм читает - блокнот мажется и файл открывает как пустой
наверное он открывает файл с кодировкой UTF-8 как файл c другой кодировкой
грррр как в C++ поставить в атрибутах исходящего файла, что он написан в кодировке юникода??
 
Зверху