есть древний код в старом C стиле надо скомпилировать как .cpp в VS 2008
когда я собираю как .c то все нормально но когда как .cpp компилятор выплевывает
кучу ошибок может можно что то сделать ?
static char *
my_index (str, chr)
const char *str;
int chr;
{
while (*str)
{
if (*str == chr)
return (char *) str;
str++;
}
return 0;
}
Здравствуйте, jyuyjiyuijyu, Вы писали:
J>есть древний код в старом C стиле надо скомпилировать как .cpp в VS 2008 J>когда я собираю как .c то все нормально но когда как .cpp компилятор выплевывает J>кучу ошибок может можно что то сделать ?
Здравствуйте, jyuyjiyuijyu, Вы писали:
J>когда я собираю как .c то все нормально но когда как .cpp компилятор выплевывает J>кучу ошибок может можно что то сделать ?
Почему не оставить старый код в файлах с расширением .с?
я бы так и сделал но надо вставить шаблоны именно в этот код
они кое чего подменят в старом коде вообщем поэтому мне и надо было откомпилить
их как .cpp
Для начала заменить это:
static char *
my_index (str, chr)
const char *str;
int chr;
{
// ...
На это:
static char *
my_index (char const *str, int chr)
{
// ...
это то понятно я надеялся на хак/трюк/ключ компилятора это же не одна функция
тысячи строк это программа древняя netcat называется в исходниках распространяется
Здравствуйте, jyuyjiyuijyu, Вы писали:
J>Почему не оставить старый код в файлах с расширением .с? J>я бы так и сделал но надо вставить шаблоны именно в этот код J>они кое чего подменят в старом коде вообщем поэтому мне и надо было откомпилить J>их как .cpp
J>Ошибки или предупреждения? J>Тыб их привёл что ли.
J>касательно функции что я привел
J>.\getopt.cpp(192) : error C2065: 'str' : undeclared identifier J>.\getopt.cpp(192) : error C2065: 'chr' : undeclared identifier J>.\getopt.cpp(192) : error C2078: too many initializers J>.\getopt.cpp(193) : error C2143: syntax error : missing ';' before 'const' J>.\getopt.cpp(193) : error C2059: syntax error : 'const' J>.\getopt.cpp(195) : error C2447: '{' : missing function header (old-style formal list?)
J>Для начала заменить это: J>static char * J>my_index (str, chr) J> const char *str; J> int chr; J>{ J>// ...
J>это то понятно я надеялся на хак/трюк/ключ компилятора это же не одна функция J>тысячи строк это программа древняя netcat называется в исходниках распространяется
Вы б добавляли теги автора при цитировании и использовали форматирование — было бы супер. Возможно, желающих помочь прибавилось даже.
старая форма декларации используется в getopt, сторонняя либа, которую вы можете скачать отдельно. возможно, там исходники причесали
да и фиксить декларации не должно быть сложным: в getopt всего два *.c файла : http://netcat.cvs.sourceforge.net/viewvc/netcat/netcat/lib/contrib/
Здравствуйте, jyuyjiyuijyu, Вы писали:
J>это то понятно я надеялся на хак/трюк/ключ компилятора это же не одна функция J>тысячи строк это программа древняя netcat называется в исходниках распространяется
Оффтопик
А может вам socat подойдет ?
Поновее, да и возможностей побольше
значит у меня не самая свежая весия вообще я скачал первые попавшиеся исходники
и стал их собирать вот эти исходники тут и файлы то другие и декларации везде старые
на нормальную версию вообще функция вызыватся отказалась
просто так еще не достаточно изменить тут антицепепе стиль во всю ))
чего только стоит имя функции catch ))
Здравствуйте, _nn_, Вы писали:
__>Оффтопик __>А может вам socat подойдет ? __>Поновее, да и возможностей побольше
может и подойдет раньше юзал netcat систему недавно переустанавливал все пропало теперь потихоньку восстанавливаю то одного нет то другого непривычно все пропало и что самое обидное ладно бы вирус какой нить уничтожил а то вполне легальная прога norton partition magic запустил чтоб изменила размеры разделов она попросила ребут а потом выкинула какую то ошибку судя по времени а у меня еще загрузка была с ключом /noguiboot я про него забыл так я и не узнал что там за ошибка была ))
J>когда я собираю как .c то все нормально но когда как .cpp компилятор выплевывает J>кучу ошибок может можно что то сделать ?
Да. Компилировать С-компилятором, а не C++. Это, вообще говоря, разные языки.
J>на нормальную версию вообще функция вызыватся отказалась J>просто так еще не достаточно изменить тут антицепепе стиль во всю )) J>чего только стоит имя функции catch ))
On 11/07/2011 04:25 PM, jyuyjiyuijyu wrote:
> это то понятно я надеялся на хак/трюк/ключ компилятора это же не одна функция > тысячи строк это программа древняя netcat называется в исходниках распространяется
Лучше компилируй эти исходники на С, а где нужно, вставиш вызова С-шных
функций, которые определиш в отдельном исходном модуле, на С++, там же сделаешь
все шаблоны. Правда, их все придётся явно инстанциировать, но это не думаю, что
будет сложно.