Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Tools] Windows-приложение под Fortran 
V
    Опции темы
OlikFleur
Дата 16.12.2010, 23:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Здравствуйте!

Я обычно пишу приложения на Фортране под DOS. Сейчас захотелось научиться писать Windows-приложения. В книге Васильченко нашла вот такой пример Windows-приложения:

Код

module parameters
integer N
real(8) x1,x2,xi,a,b,h,sum
end module parameters

integer function WinMain(hInstance, hPrevInstance, lpszCmdLine, nCmdShow)
!DEC$ ATTRIBUTES STDCALL, ALIAS : '_WinMain@16' :: WinMain
use dfwina
integer hInstance, hPrevInstance, nCmdShow, lpszCmdLine
    call integral
WinMain=0
return
end

subroutine integral
use parameters
N=100
x1=1.0d0
x2=2.0d0
a=1.0d0
b=0.0d0
call CalculateIntegral
write(*,*) 'Value of the integral = ', sum
return
end

subroutine CalculateIntegral
use parameters
external FunctionValue
sum=0.0d0
h=(x2-x1)/(N-1)
do i=1,N
    xi=x1+(i-1)*h
    sum=sum+FunctionValue(xi)
end do
sum=sum*h
return
end

function FunctionValue(x)
use parameters
real(8) x
FunctionValue=a*x+b
return
end


Но откомпилировать не получается:

Код

1>ifqwin.lib(qwkentry.obj) : error LNK2005: _WinMain@16 already defined in WinMain.obj
1>libifcoremt.lib(for_main.obj) : error LNK2019: unresolved external symbol _MAIN__ referenced in function _main
1>Debug\QWtest.exe : fatal error LNK1120: 1 unresolved externals


Подскажите, пожалуйста, в чем проблема.


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


Опытный
**


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

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



А тип проекта какой выбран?
PM MAIL   Вверх
OlikFleur
Дата 17.12.2010, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



QuickWin Application, использую 2005 Студию, компилятор 11.0.074. 

Это сообщение отредактировал(а) OlikFleur - 17.12.2010, 18:26
PM MAIL   Вверх
FCM
Дата 17.12.2010, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Нужно наверное  Empty Windows Application

Возможно еще, что имена встроенных модулей в Intel Visual Fortran могут слегка отличаться, по сравнению с описываемым у Васильченко Compaq Visual Fortran
Вместо dfwin нужно по видимому ifwin

Это сообщение отредактировал(а) FCM - 17.12.2010, 19:08
PM MAIL   Вверх
OlikFleur
Дата 17.12.2010, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Попробовала сделать приложение через Windowing Application -> Empty Project

Откомпилировалось, но я получила ошибку:

user posted image

Посмотрела Help для Fortran, определение функции WinMain описывается так же, как и у Васильченко.
PM MAIL   Вверх
FCM
Дата 17.12.2010, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Заменили dfwina на  ifwin?
PM MAIL   Вверх
OlikFleur
Дата 17.12.2010, 19:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Да.

Стала проверять программу без рассчета интеграла (как в тестовом примере), вроде ошибок нет, значит проблема с кодом для рассчета. Но с этим я уже разберусь.

Большое спасибо за подсказку!
PM MAIL   Вверх
FCM
Дата 17.12.2010, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Возможно, вот это в данном приложении не проходит
write(*,*) 'Value of the integral = ', sum

Первая * вывод "на конcоль" , а здесь Windows-приложение

Это сообщение отредактировал(а) FCM - 17.12.2010, 19:33
PM MAIL   Вверх
OlikFleur
Дата 17.12.2010, 19:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(FCM @ 17.12.2010,  19:30)
Возможно, вот это в данном приложении не проходит
write(*,*) 'Value of the integral = ', sum

Первая * вывод "на конcоль" , а здесь Windows-приложение

Вы абсолютно правы, именно это вызывало ошибку.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Fortran | Следующая тема »


 




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


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

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