![]() |
|
|
![]()
|
|
| mak77 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 2.9.2010 Репутация: нет Всего: нет |
Необходимо научить фортрановскую программу делать POST или GET запрос и получать ответ сервера. Возможно ли это?
|
|||
|
||||
| FCM |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.3.2009 Репутация: 8 Всего: 9 |
Может быть возможно - не знаю.
Во всяком случае, если это возможно из С/C++, то можно попробовать вызывать из фортран-программы соответствующие С/C++ - функции. |
|||
|
||||
| mak77 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 2.9.2010 Репутация: нет Всего: нет |
Пытаюсь вызвать из фортрановской программы С/C++ - функцию (как это описано в книге Бартеньева Фортран: новые возможности), не получается.
Может есть конкретный того, как это делается, какие файлы надо создавать, что и куда писать? |
|||
|
||||
| FCM |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.3.2009 Репутация: 8 Всего: 9 |
Покажи, свой нерабочий пример + какие компиляторы используются.
|
|||
|
||||
| mak77 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 2.9.2010 Репутация: нет Всего: нет |
Код фортрановской программы:
program fortmain interface subroutine find_ab2(a,b,g) !dec$attributes stdcall :: find_ab2 ! Атрибут подпрограммы !dec$attributes reference :: a, b ! Параметры a и b передаются по ссылке !dec$attributes value :: g ! Параметр g передается по значению real(4) :: a, b, g end subroutine find_ab2 end interface real(4) :: a, b call find_ab2(a, b, -1.0) ! Первые 2 параметра передаются по ссылке print '(1x, 2f6.2)', a, b ! -2.00 3.00 end Код программы на СИ: #pragma hdrstop //--------------------------------------------------------------------------- #pragma argsused int main(int argc, char* argv[]) {return 0;} void _stdcall find_ab2(float *a, float *b, float g) {*a = 2.0 * g; *b = 3.0;} Компилирую программу на СИ с помощью C++Builder 6. Вставляю созданнный после компиляции файл Unit2.obj в фортрановский проект. Пытаюсь откомпилировать (Compaq Visual Fortran). Вот что пишет: \Unit2.obj : warning LNK4033: converting object format from OMF to COFF ci.obj : error LNK2001: unresolved external symbol _find_ab2@12 Unit2.obj : error LNK2001: unresolved external symbol __setargv__ Release/ci.exe : fatal error LNK1120: 2 unresolved externals Пытался также встаить в фотрановский проект непосредственно файл Unit.c, тоже не компилируется. С СИ я совершенно не знаком. Добавил код (функция find_ab2) из книжки Бартеньева в стандартную заготовку консольного проекта. |
|||
|
||||
| FCM |
|
||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 461 Регистрация: 30.3.2009 Репутация: 8 Всего: 9 |
Если пользуешься Visual Fortran, то в пару ему естественно использовать не Borland, а Microsoft Visual C++.
В твоем случае, должно быть что-то такое:
Код программы на С:
или код программы на С++:
либо
Это сообщение отредактировал(а) FCM - 5.9.2010, 20:35 |
||||||||
|
|||||||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Fortran | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |