Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с компиляцие примера из книги Васильченко 
:(
    Опции темы
Ksetrad
Дата 7.10.2011, 01:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Вообщем это второй пример из книжки Васильченко
использую Vs 2008 c PGIVisual Fortran 32 bit
Код

module GUI_parameters 
use dfwin
integer*4 hInst
character*100 ClassName, WndName
Integer*4 hWndMain
end module GUI_parameters

integer*4 function WinMain(hInstance, hPrevInstance, lpszCmdLine, nCmdShow)
!DEC$ ATTRIBUTES STDCALL, ALIAS: '_WinMain@16' :: WinMain
use GUI_parameters
integer*4 hInstance, hPrevInstance, nCmdShow, lpszCmdLine
type(T_MSG) mesg
    lpszCmdLine =lpszCmdLine
    nCmdShow = nCmdShow
    hPrevInstance = hPrevInstance
    hInst = hInstance
    call OnInit(iret)
    if(iret.eq.0)then
        iq = MessageBox(NULL,"Невозможно зарегестрировать клас окна..."//" ПРограмма остановлена."C, "Ошибка"C, &
        INT4(IOR(MB_OK, MB_ICONSTOP)))    
    WinMain = 0
    return
    endif
    hWndMain = CreateWindowsEx(0,    &
                        ClassName, &
                        WndName, &
                        INT(WS_OVERLAPPEDWINDOW), &
                        0, &
                        0, &
                        350, &
                        150, &
                        NULL, &
                        NULL, &
                        hInst, &
                        NULL)
                        
    iret = ShowWindow (hWndMain , SW_SHOWNORMAL)
    do while (GetMessage(mesg, Null,0 ,0 ).NE.0)
        i = TranslateMessage(mesg)
        i = DispatchMessage(mesg)
    end do
    WinMain = 0
    return
    end
    
    subroutine OnInit(iret)
    use GUI_parameters
    integer*4     iret
    type(T_WNDCLASSEX) wc
        interface        
            integer*4 function MainWndProc(hWnd, mesg, wParam, lParam)
        !DEC$ ATTRIBUTES STDCALL, ALIAS : '_MainWndProc@16' :: MainWndProc
        use GUI_parameters
        integer*4 hWnd, mesg, wParam, lParam
        end function MainWndProc
        end interface
        
        ClassName= "MinimalApp"C
        WndName = "Вычисление интеграл"C
        
        wc%cbSize    =sizeof(wc)
        wc%style    = IOR(CS_VREDRAW, CS_HREDRAW)
        wc%lpfnWndProc = LOC(MainWndProc)
        wc%cbClsExtra = 0
        wc%cbWndExtra = 0
        wc%hInstance = hInst
        wc%hIcon = LoadIcon(NULL, IDI_APPLICATION)
        wc%hCursor = LoadCursor(NULL, IDC_ARROW)
        wc%hbrBackground = GetStockObject(LTGRAY_BRUSH)
        wc%lpszMenuName = NULL
        wc%lpszClassName    = LOC(ClassName)
        wc%hIconSm= LoadIcon(NULL, IDI_APPLICATION)
            

        
    
        iret = RegisterClassEx(wc)
        return
        end
        
        integer*4 function MainWndProc(hWnd, mesg, wParam, lParam)
        !DEC$ ATTRIBUTES STDCALL, ALIAS : '_MainWndProcc@16' :: MainWndProc
        use GUI_parameters
        integer*4 hWnd, mesg, wParam, lParam
        select case(mesg)
        case(WM_DESTROY)
            call PostQuitMessge(0)
            MainWndProc=0
            return
            case default
                MaainWndProc = DefWindowProc(hWnd, mesg, wParam, lParam)
                return
            end select
            return
            end

    при компиляции возникает следующая проблема
Argument number 1 to registerclassex: type mismatch
Argument number 1 to registerclassex: type mismatch
Illegal use of derived type
Illegal argument to %VAL or %LOC
Argument number 1 to registerclassex: type mismatch
Argument number 1 to registerclassex: type mismatch
Illegal use of derived type
Illegal argument to %VAL or %LOC

все на 77 строке т.е. на iret = RegisterClassEx(wc)

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


Дикий Кот. =^.^=
****
Награды: 1



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

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



Мало того, что Win32 API, так ещё и на Fortran... smile 

Ksetrad, зачем Вам такой БДСМ?


--------------------
PM MAIL WWW GTalk Jabber   Вверх
Фантом
Дата 9.10.2011, 00:27 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


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

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



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


 




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


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

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