Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> использование MSXSL.exe (xsl - преобразователь), передача строки в качестве параметра 
:(
    Опции темы
zmejg
Дата 5.12.2007, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 18.7.2007

Репутация: нет
Всего: нет



Привет всем. Кто может помочь с такой проблемой?

....есть программа на C++. В некоторой строке содержится содержимое XML документа, т.е.

char* xmlText = "<?xml version=\"1.0\"?><root>..... ";

нужно преобразовать данную строку с помощью имеющегося xsl. Но msxsl.exe может принимать исходные данные только из файла, либо со стандартного ввода. Вопрос в том - как можно передать эти данные из строки?

Понятно, что можно сделать временный файл tmp.xml, туда записать xmlText,а затем сделать вызов наподобие следующего:

WinExec("msxsl.exe -tmp.xml - myxsl.xsl -o result.xml");

...а потом удалить tmp.xml.  Но мне это кажется как-то криво.
Еще интересно, можно ли результат получить тоже в виде строки?

PM MAIL   Вверх
SABROG
Дата 5.12.2007, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 4
Всего: 91



Цитата

Но мне это кажется как-то криво.


А прямо и не получиться, пока не избавишься от msxsl и не напишешь свою программу, а также не изменишь способ хранения xml документа.

Выход я вижу таким:
- качаем libxml2 и курим исходники xsltproc (аналог msxsl для linux)
- берем свой .cpp файл с xmlем, подключаем к нему libxml2, делаем преобразование, генерим строку и записываем в новый .cpp файл.

А вообще я так и не понял задачу до конца. Это было бы логично только если есть сотни-тысячи cpp файлов с такими xmlями, или сотни-тысячи строк в одном файле с xmlText1, xmlText2...xmlText10000.

Это сообщение отредактировал(а) SABROG - 5.12.2007, 17:05


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
zmejg
Дата 5.12.2007, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 18.7.2007

Репутация: нет
Всего: нет



задача такая: есть cgi приложение на C++. Весь результат работы приложения собирается в одной строке вроде xmlText, затем строка подается на стандартный вывод. xmlText сейчас содержит ссылку на файл xsl. Естествнно преобразование в этом случае происходит на стороне клиента (клиент в специальном диалоговом окне будет указывать путь к xsl файлу). Задача сделать это преобразование на стороне сервера.
Цитата

не изменишь способ хранения xml документа

...xml документ вообще нигде не хранится

я не понимаю почему вы меня не понимаете, ведь xmlText содержит не статические данные, а для каждого запроса имеет свое содержимое.

а где можно взять libxml2, мне для винды нужно естественно

Это сообщение отредактировал(а) zmejg - 5.12.2007, 17:36
PM MAIL   Вверх
SABROG
Дата 5.12.2007, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 4
Всего: 91



Наверно потому, что я не нашел в первом посте слово CGI. Ну раз программа ваша, то проблемы не вижу, libxml2 кросплатформенный. Собирается через gcc, msvc и mingw.
Может быть есть смысл поработать с msxml.dll, не знаю есть ли там методы для работы с xsl преобразованием. Не люблю поделки мелкософта.


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
xvr
Дата 6.12.2007, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Цитата(zmejg @ 5.12.2007,  09:57)
Привет всем. Кто может помочь с такой проблемой?

....есть программа на C++. В некоторой строке содержится содержимое XML документа, т.е.

char* xmlText = "<?xml version=\"1.0\"?><root>..... ";

нужно преобразовать данную строку с помощью имеющегося xsl. Но msxsl.exe может принимать исходные данные только из файла, либо со стандартного ввода. Вопрос в том - как можно передать эти данные из строки?

msxsl это демо программа - врапер над MSXML ActiveX компонентом. Ее исходники есть на сайте MS (в MSDN), только они там хитро закопанны, удалось найти только через google :(
Берешь исходники, правишь под свои нужды или зовешь MSXML напрямую.

PM MAIL   Вверх
zmejg
Дата 6.12.2007, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 18.7.2007

Репутация: нет
Всего: нет



скажите, как нужно компилировать все это добро?
и какие именно изменения и куда нужно вносить?
PM MAIL   Вверх
xvr
Дата 6.12.2007, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Цитата(zmejg @ 6.12.2007,  17:00)
скажите, как нужно компилировать все это добро?

nmake

Цитата

и какие именно изменения и куда нужно вносить?

Main находится в файле main.cxx (как ни странно smile )
Разбор коммандной строки находится в файлах cmdline.cxx/hxx
Собственно преобразование - в файле transfrm.cxx
Имена файлов:
Входной - _bstrInput
Шаблон - _bstrStylesheet
Выходной - _bstrOutput
Файловые потоки содержатся в файлах seqstrm.cxx/hxx
Можно заменить реализацию файловых потоков, что бы они читали строки из памяти, в качестве имени файла они будут принимать указатели на строки (в текстовом виде)
Функцию main надо переименовать во что-нибудь отличное от main
Функцию mainCRTStartup - убрать.
В функции HRESULT ParseCommandLine::Parse() {return Parse(GetCommandLineW());} - GetCommandLineW заменить на свою коммандную строку (приготовленную в памяти) и позвать бывшую main.

Да, всю эту бодягу прилинковать к своей программе


PM MAIL   Вверх
zmejg
Дата 15.12.2007, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 18.7.2007

Репутация: нет
Всего: нет



а как пользоваться nmake?

я понимаю что есть такие вещи как google, msdn и т.д... но так слишком сложно искать что-то конкретное. Может в двух словах напишете как собирать проекты с помощью make файлов
PM MAIL   Вверх
xvr
Дата 15.12.2007, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Цитата(zmejg @ 15.12.2007,  10:47)
а как пользоваться nmake?

я понимаю что есть такие вещи как google, msdn и т.д... но так слишком сложно искать что-то конкретное. Может в двух словах напишете как собирать проекты с помощью make файлов

Заходишь в директорию с сорцами, убеждаешься, что у тебя настроенны пути на VC, набираешь nmake
Если хочешь более подробно - загляни в makefile (файл такой, в директории с сорцами)

PM MAIL   Вверх
maxim1000
Дата 15.12.2007, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 17
Всего: 110



Цитата(zmejg @  5.12.2007,  09:57 Найти цитируемый пост)
Но msxsl.exe может принимать исходные данные только из файла, либо со стандартного ввода

такое ощущение, что этого никто не заметил
если использовать CreateProcess, перенаправить стандартный ввод на что угодно не составляет большой проблемы...


--------------------
qqq
PM WWW   Вверх
SABROG
Дата 15.12.2007, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 4
Всего: 91



Можно, конечно, CreatePipe сделать, но это не правильный выход из ситуации. Это все-равно что принимать данные через SMS, мобильный телефон положить на сканнер, а FineReader будет расшифровывать, а плагин для FineReader'a обрабатывать.


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
zmejg
Дата 15.12.2007, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 18.7.2007

Репутация: нет
Всего: нет



видимо двух слов недостаточно...
в командной строке в директории msxslsrc пишу :
C:\>msxslsrc> nmake.exe makefile

...и ничего не происходит. А что должно быть? Как скомпилировать исходный проект хотя бы для начала без моих изменений?
PM MAIL   Вверх
jonie
Дата 17.12.2007, 01:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 15
Всего: 118



что значит ничего не происходит?? тупо черный экран и мигающий курсор чтоли? и вообще НИЧЕГО?


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
zmejg
Дата 17.12.2007, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 18.7.2007

Репутация: нет
Всего: нет



написано что-то вроде:

makefile is up-to-date

...что это означает?
PM MAIL   Вверх
xvr
Дата 17.12.2007, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Цитата(zmejg @ 15.12.2007,  16:50)
видимо двух слов недостаточно...
в командной строке в директории msxslsrc пишу :
C:\>msxslsrc> nmake.exe makefile

...и ничего не происходит. А что должно быть? Как скомпилировать исходный проект хотя бы для начала без моих изменений?

makefile здесь лишний, надо просто nmake без параметров

Цитата

makefile is up-to-date

...что это означает?

Это значит, что ты сказал nmake, что хочешь собрать makefile, и nmake сообщил, что makefile вполне новый - нет никаких новых файлов, от которых бы он зависел.

PM MAIL   Вверх
zmejg
Дата 17.12.2007, 23:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 18.7.2007

Репутация: нет
Всего: нет



А сейчас что не так?

C:\msxslsrc>nmake.exe

получаю:

"mc" не является внутренней или внешней командой, исполняемой программой или пакетным файлом.
NMAKE: fatal error U1077: 'C:\windows\system32\cmd.exe: return code '0x1'
Stop.
PM MAIL   Вверх
xvr
Дата 18.12.2007, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Цитата(zmejg @ 17.12.2007,  23:24)
А сейчас что не так?

C:\msxslsrc>nmake.exe

получаю:

"mc" не является внутренней или внешней командой, исполняемой программой или пакетным файлом.
NMAKE: fatal error U1077: 'C:\windows\system32\cmd.exe: return code '0x1'
Stop.

Это означает, что в makefile'е для чего-то завется утилита mc. Что это за утилита и для чего завется я не в курсе. Насколько я помню, makefile там весьма не тривиальный, автор занимался уменьшением размера exe'ника (makefile'а сейчас под рукой нет, посмотреть не могу)

Посмотрел - mc это Message Compiler. Должен быть в VS (у VS 2003 лежит в C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Tools\Bin), убедись, что PATH туда смотрит.


Это сообщение отредактировал(а) xvr - 18.12.2007, 21:20
PM MAIL   Вверх
zmejg
Дата 18.12.2007, 23:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 18.7.2007

Репутация: нет
Всего: нет



у меня 2005-ая студия. Для mc.exe поправил переменную path. Потом тоже самое сделал для 
cl.exe
Сейчас ошибка такая:

core.cxx: fatal error C1902: Program database manager mismatch; please check your installation
PM MAIL   Вверх
xvr
Дата 19.12.2007, 10:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Цитата(zmejg @ 18.12.2007,  23:05)
у меня 2005-ая студия. Для mc.exe поправил переменную path. Потом тоже самое сделал для 
cl.exe
Сейчас ошибка такая:

core.cxx: fatal error C1902: Program database manager mismatch; please check your installation

Похоже на внутреннюю ошибку студии. Сотри все промежуточные файлы (особенно в директориях Debug & Release) и попробуй еще раз.

PM MAIL   Вверх
zmejg
Дата 19.12.2007, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 18.7.2007

Репутация: нет
Всего: нет



сорри, какие промежуточные файлы?...у меня в сорсах нету никаких Debug и Release. В сорсах только код и ресурсы какие-то.
PM MAIL   Вверх
xvr
Дата 20.12.2007, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Цитата(zmejg @ 19.12.2007,  21:11)
сорри, какие промежуточные файлы?...у меня в сорсах нету никаких Debug и Release. В сорсах только код и ресурсы какие-то.

Тогда посмотри нет ли в PATH других версий VS - очень похоже на несоотвествие версий внутренних тулзов VS. 
Кстати, попробуй запустить vcvars32.bat из Common?\Tools директории перед запуском nmake - он настраивает все переменные окружения, необходимые для работы с коммандной строки.
Вообще makefile там заточен под VC 6.0

PM MAIL   Вверх
zmejg
Дата 22.12.2007, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 18.7.2007

Репутация: нет
Всего: нет



других версий нет и никогда не было.
vcvar32.bat запустил. Теперь такая ошибка:

NMAKE : fatal error U1077 '"C:\Program files\Microsoft Visual Studio 

2005\VC\bin\cl.EXE"' : return code '0x0000135'
Stop.
PM MAIL   Вверх
xvr
Дата 22.12.2007, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Цитата(zmejg @ 22.12.2007,  17:22)
других версий нет и никогда не было.
vcvar32.bat запустил. Теперь такая ошибка:

NMAKE : fatal error U1077 '"C:\Program files\Microsoft Visual Studio 

2005\VC\bin\cl.EXE"' : return code '0x0000135'
Stop.

Обламалась компиляция, что ей надо по приведенным сообщениям непонятно :(
Еще какие-нибудь сообщения (или лог файлы) были?

PM MAIL   Вверх
zmejg
Дата 24.12.2007, 21:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 18.7.2007

Репутация: нет
Всего: нет



не было. после запуска vcvar32.bat только такое сообщение и больше ничего.
PM MAIL   Вверх
xvr
Дата 24.12.2007, 22:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Цитата(zmejg @ 24.12.2007,  21:03)
не было. после запуска vcvar32.bat только такое сообщение и больше ничего.

Что то у тебя с инсталяцией студии не то :(
Взял VS 2003 (2005 нет, увы), распаковал сорцы, скопировал vsvars32.bat из студии и запустил с командной строки:
vsvars32.bat & nmake - все откомпилилось, получен файл debug\msxsl.exe
У тебя вообще cl.exe с коммандной строки нормально запускается?

PM MAIL   Вверх
zmejg
Дата 25.12.2007, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 18.7.2007

Репутация: нет
Всего: нет



точно. такая команда:

C:\>cl.exe

выдала ошибку - не удается найти mspdb80.dll. Нашел эту dll-ку, установил на нее переменную path.
Теперь при запуске nmake ошибка такая:

c:\msxslsrc\core.hxx(10) : fatal error C1034 : windows.h: no include path set
nmake : fatal error U1077: C:\Program files\Microsoft Visual Studio 2005\VC\bin\cl.EXE"': return code '0x2'
Stop.
PM MAIL   Вверх
xvr
Дата 26.12.2007, 23:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Цитата(zmejg @ 25.12.2007,  19:51)
точно. такая команда:

C:\>cl.exe

выдала ошибку - не удается найти mspdb80.dll. Нашел эту dll-ку, установил на нее переменную path.
Теперь при запуске nmake ошибка такая:

c:\msxslsrc\core.hxx(10) : fatal error C1034 : windows.h: no include path set
nmake : fatal error U1077: C:\Program files\Microsoft Visual Studio 2005\VC\bin\cl.EXE"': return code '0x2'
Stop.

vsvars32.bat должен устанавливать ВСЕ переменные окружения, необходимые для работы компилятора и пр. По всей видимости они не устанавливаются, или vsvars32.bat взят не оттуда, или установка VS 2005 кривая (например C++ не установлен, или Platform SDK не установлен, что врядли)

PM MAIL   Вверх
zmejg
Дата 27.12.2007, 02:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 18.7.2007

Репутация: нет
Всего: нет



c vsvars32.bat разобрался. Не сразу понял, что её просто нужно запускать из каталога с сорсами.

Блин, занудное это дело. Теперь ошибка такая:

main.cxx(84) : error C2220: warning treated as error - no 'object' file generated
main.cxx(84) : warning C4996: '_itow' was declared deprecated
C:\Program files\Microsoft Visual Studio 2005\VC\include\stdlib.h(612) : see declaration of '_itow'
Message : This function or variable may be unsafe. Consider using _itow_s instead. To disable deprecation? use _CRT_SECURE_NO_DEPRECATE. See online help for details.
(и так не только в main.cxx но и во всех других, где используется _itow)

...сначала попробовал все вызовы _itow заменить на _itow_s. При этом компиляция нормально проходит, а вот при линковании ошибка - unresolved extarnal symbol : _itow_s
А если во всех файлах где используется _itow определить макрос:
#define _CRT_SECURE_NO_DEPRECATE
...то ничего не происходит - те же самые ошибки.

что можно сделать?

PM MAIL   Вверх
xvr
Дата 27.12.2007, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Цитата(zmejg @ 27.12.2007,  02:12)
c vsvars32.bat разобрался. Не сразу понял, что её просто нужно запускать из каталога с сорсами.

Блин, занудное это дело. Теперь ошибка такая:

main.cxx(84) : error C2220: warning treated as error - no 'object' file generated
main.cxx(84) : warning C4996: '_itow' was declared deprecated
C:\Program files\Microsoft Visual Studio 2005\VC\include\stdlib.h(612) : see declaration of '_itow'
Message : This function or variable may be unsafe. Consider using _itow_s instead. To disable deprecation? use _CRT_SECURE_NO_DEPRECATE. See online help for details.
(и так не только в main.cxx но и во всех других, где используется _itow)

...сначала попробовал все вызовы _itow заменить на _itow_s. При этом компиляция нормально проходит, а вот при линковании ошибка - unresolved extarnal symbol : _itow_s
А если во всех файлах где используется _itow определить макрос:
#define _CRT_SECURE_NO_DEPRECATE
...то ничего не происходит - те же самые ошибки.

что можно сделать?

Не могу проверить - нет VS 2005 под рукой, но похоже, что этот дефайн _CRT_SECURE_NO_DEPRECATE надо задать в makefile'е (добавить в CFLAGS или CPPFLAGS -D=_CRT_SECURE_NO_DEPRECATE)

PM MAIL   Вверх
zmejg
Дата 28.12.2007, 20:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 18.7.2007

Репутация: нет
Всего: нет



че-то никак...

в список флагов CXXFLAGS (CFLAGS - такого нету) добавил _CRT_SECURE_NO_DEPRECATE
запускаю nmake:

cl : Command line warning D9002 : ignoring unknown option '/_CRT_SECURE_NO_DEPRECATE'

(кстати тот же самый варнинг получаю почти для всех остальных опций которые уже есть)

а как узнать в каком .lib файле находится определение функции _itow_s?
PM MAIL   Вверх
xvr
Дата 28.12.2007, 21:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Цитата(zmejg @ 28.12.2007,  20:24)
че-то никак...

в список флагов CXXFLAGS (CFLAGS - такого нету) добавил _CRT_SECURE_NO_DEPRECATE

Надо добавлять -D_CRT_SECURE_NO_DEPRECATE

Цитата

а как узнать в каком .lib файле находится определение функции _itow_s?

Смотреть в help'е

PM MAIL   Вверх
zmejg
Дата 29.12.2007, 21:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 18.7.2007

Репутация: нет
Всего: нет



добавил. я так понял это равносильно определению макроса:

#define _CRT_SECURE_NO_DEPRECATE

...нету эффекта. 
может искал не там, но в хелпе не нашел где определена _itow_s, 
PM MAIL   Вверх
xvr
Дата 9.1.2008, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Цитата(zmejg @ 29.12.2007,  21:27)
добавил. я так понял это равносильно определению макроса:

#define _CRT_SECURE_NO_DEPRECATE

...нету эффекта. 
может искал не там, но в хелпе не нашел где определена _itow_s,

Нашел _itow_s в MSDN (http://msdn2.microsoft.com/en-us/library/0we9x30h(VS.80).aspx):

Цитата


Run-Time Library Reference  
_itoa_s, _i64toa_s, _ui64toa_s, _itow_s, _i64tow_s, _ui64tow_s 

This page is specific to 
Microsoft Visual Studio 2005/.NET Framework 2.0

errno_t _itow_s(
   int value,
   wchar_t *buffer,
   size_t sizeInCharacters,
   int radix 
);

Parameters
[in] value
Number to be converted.

[out] buffer
Filled with the result of the conversion.

[in] sizeInCharacters
Size of the buffer in single-byte characters or wide characters.

[in] radix
Base of value; which must be in the range 2–36.

 Return Value 
Zero if successful; an error code on failure. If any of the following conditions applies, the function invokes an invalid parameter handler, as described in Parameter Validation.


Routine: _itow_s 

Required header: <stdlib.h> or <wchar.h>

Compatibility: Windows 95, Windows 98, Windows 98 Second Edition, Windows Millennium Edition, Windows NT 4.0, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003
 


Оттуда же

Цитата

Eliminating deprecation warnings

There are several ways to eliminate deprecation warnings for the older, less secure functions. The simplest is simply to define _CRT_SECURE_NO_WARNINGS or use the warning pragma. Either will disable deprecation warnings, but of course the security issues that caused the warnings still exist. It is far better to leave deprecation warnings enabled and take advantage of the new CRT security features.


Кстати, по поводу depricated функций глянь в http://forums.microsoft.com/MSDN/ShowPost....01&SiteID=1


Это сообщение отредактировал(а) xvr - 9.1.2008, 15:55
PM MAIL   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1263 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.