Вопрос по Windows API - PullRequest
       2

Вопрос по Windows API

2 голосов
/ 25 декабря 2010

У меня есть код, который работает на DOS Box в Windows 7 ... Однако мой вопрос заключается в том, использует ли мой код API Windoows или нет? Ниже приведен файл заголовков, который я использую ...

#include<iostream.h>
#include<conio.h>
#include<dos.h>
#include<graphics.h>
#include<process.h>

Ответы [ 3 ]

3 голосов
/ 25 декабря 2010

Почему бы вам не взглянуть на этот код? Если используются какие-либо специфичные для Windows API-интерфейсы, их будет несложно найти, просмотрев включенные заголовочные файлы.

DOSBox может запускать Windows 3.1 и связанные программы, но если ваша программа работает за пределами Windows 3.1, то вы можете быть уверены, что API-интерфейсы Windows не используются.

2 голосов
/ 25 декабря 2010

Эти заголовки не являются частью Windows API, и фактически маловероятно, что ваш код будет компилироваться вообще с использованием компилятора, отличного от Borland Turbo C / C ++.

Похоже, вы используетев основном проприетарные библиотеки Borland.Например, graphics.h позволяет рисовать графику в текстовой среде MS-DOS.Он совсем не поддерживается в Windows.

Даже заголовочные файлы, такие как conio.h, которые вы, вероятно, найдете в других компиляторах, могут быть несовместимы с тем, который вы используете в своем коде.Библиотечные функции, объявленные conio.h, несколько варьируются от одного компилятора к другому.

Как правило, каждая программа, использующая API Windows, будет включать windows.h и, возможно, некоторые дополнительныефайлы дочерних заголовков, в зависимости от конкретной необходимой функциональности.

0 голосов
/ 20 февраля 2011

Большая часть информации, которую вы получили до сих пор, носит слишком общий характер. Заголовки, которые включены, не показывают вам все.

1) используемый компилятор будет включать заголовки за кулисами

2) библиотеки , связанные , слабо связаны с указанными вами заголовками

Пример:

  • если вы используете MinGW и явно не включаете заголовки, это закулисно свяжется с stdlib.h, и это будет связано с API Windows, о котором вы даже не подозреваете.

  • если вы затем вызовете malloc (), он будет переведен в HeapAlloc (Windows API) с помощью mingw-Headers и явно связан с Windows API.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...