Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: C++ для новичка  (Прочитано 12678 раз)
0 Пользователей и 1 Гость смотрят эту тему.
KerLaede
Гость
« : 19-08-2004 20:29 » 

Простите, но я очень плохо разбираюсь во всех этих терминах.
Скажите что такое WINAPI, и для чего он нужен?
Записан
npak
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 20-08-2004 09:36 » 

KerLaede, WINAPI это макрос, который раскрывается в ключевое слово __stdcall, введённое Microsoft в свой компилятор С.

Это ключевое слово определяет порядок передачи параметров функции при вызове и как будет очищаться стек после вызова функции.

В недавней статье Alfhttps://club.shelek.ru/viewart.php?id=205 подробно описываются все способы вызова функций, которые поддерживает компилятор Microsoft.
Записан

UniTesK -- индустриальная технология надежного тестирования.

http://www.unitesk.com/ru/
MOPO3
Ай да дэдушка! Вах...
Команда клуба

lt
Offline Offline
Пол: Мужской
Холадна аднака!


WWW
« Ответ #2 : 20-08-2004 10:35 » 

npak, может его интересует другое ? Что WIN API  - это Windows Application Interface ?
Записан

MCP, MCAD, MCTS:Win, MCTS:Web
npak
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #3 : 20-08-2004 10:56 » 

MOPO3, может и так.

Тогда WinApi -- это огромный набор функций, которые предоставляет Windows разработчику пользовательского софта.  В этот набор входят функции графического интерфейса, функции доступа к файловой системе, функции управления памятью, функции управления потоками/процессами и ещё масса всего.
Записан

UniTesK -- индустриальная технология надежного тестирования.

http://www.unitesk.com/ru/
KerLaede
Гость
« Ответ #4 : 20-08-2004 21:20 » 

npak, MOPO3, спасибо!

Как можно создать DLL, и загружать в свой проект?
Записан
KerLaede
Гость
« Ответ #5 : 21-08-2004 04:28 » 

Помогите пожалуйста! Как можно зделать таймер в консоле? Что-то наподобие Timer1 в C++Builder'e , чтоб через некоторое время происходило какое-нибудь событие?
Записан
Wizard
Гость
« Ответ #6 : 21-08-2004 05:54 » 

Я в очень неплохо знаю Delphi, но сейчас мне нужно за неделю освоить C++Builder. Где мне найти такую инфу ?
Записан
KerLaede
Гость
« Ответ #7 : 22-08-2004 16:38 » 

Wizard, Могу дать неплохую ссылку:

http://bcb.net.ru/books/index.html
Записан
KerLaede
Гость
« Ответ #8 : 22-08-2004 16:43 » 

Хочу сделать какуе-нибудь игру, но столкнулся с такой проблемой: как запехнуть графику в эту игру я не знаю. Поэтому решил спросить здесь. Сам я программирую в Borland С++. Помогите пожалуйста!
Записан
npak
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #9 : 23-08-2004 08:40 » 

KerLaede, создание DLL зависит от используемого средства сборки.  У тебя, я подозреваю, продукты Borland -- для них я не знаю.

Загрузка DLL в Win32 (стандартный интерфейс MS Windows) осуществляется двумя способами.  В первом к файлам проекта добавляется загрузочная библиотека (import library).  Эта библиотека "знает" как подгружать DLL и вызывать функции из DLL.  Второй способ -- грузить DLL самостоятельно при работе программы.  Это делается функцией LoadLibrary.  После того, как библиотека загружена в адресное пространство процесса, нужно получить указатель на функции из DLL стандартной функцией GetProcAddress.

Таймер в Win32 можно создать при помощи функции CreateTimerQueueTimer.  Работает только на Win2000 и старше.  Этот таймер по истечении вызывает некоторую функцию.  Таймерное событие можно сделать, если в функцию передавать событие, а функция будет это событие взводить.

Вот пример:
Код:
#define _WIN32_WINNT 0x0500

#include <windows.h>
#include <stdio.h>

VOID CALLBACK TimerRoutine(PVOID lpParam, BOOL TimerOrWaitFired)
{
    HANDLE ext_DoneEvent = *(HANDLE *)lpParam;
    printf("TimerRoutine: timer expired\n");
    SetEvent(ext_DoneEvent);
}

int main()
{
    HANDLE hTimerEvent;
    HANDLE hTimer = NULL;
    HANDLE hTimerQueue = NULL;

    hTimerEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
   
    if (!hTimerEvent)
    {
        printf("CreateEvent failed (%d)\n", GetLastError());
        return 1;
    }

    // Create the timer queue.
    hTimerQueue = CreateTimerQueue();
    if (!hTimerQueue)
    {
        printf("CreateTimerQueue failed (%d)\n", GetLastError());
        return 2;
    }

    // Set a timer to call the timer routine in 5 seconds.
    if (!CreateTimerQueueTimer(
        &hTimer, hTimerQueue, TimerRoutine, &hTimerEvent , 5000, 0, 0))
    {
        printf("CreateTimerQueueTimer failed (%d)\n", GetLastError());
        return 3;
    }

    // Do other useful work here

    printf("Call timer routine in 5 seconds...\n");

    // Wait for the timer-queue thread to complete using an event
    // object. The thread will signal the event at that time.

    if (WaitForSingleObject(hTimerEvent, INFINITE) != WAIT_OBJECT_0)
        printf("WaitForSingleObject failed (%d)\n", GetLastError());

    // Delete all timers in the timer queue.
    if (!DeleteTimerQueue(hTimerQueue))
        printf("DeleteTimerQueue failed (%d)\n", GetLastError());

    return 0;

}
« Последнее редактирование: 30-11-2007 22:44 от Алексей1153++ » Записан

UniTesK -- индустриальная технология надежного тестирования.

http://www.unitesk.com/ru/
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines